Go を独学するために、いくつかの入力を受け取り、いくつかの処理を行い、クライアントに出力 (元の入力を含む) を送信する単純なサーバーを構築しています。
入力の長さは、約 5 から 13 文字 + エンドライン、およびクライアントが送信するその他のガフまでさまざまです。
入力はバイト配列に読み込まれ、処理のために文字列に変換されます。この文字列に別の文字列が追加され、全体がバイト配列に変換されてクライアントに送り返されます。
問題は、入力が一連の NUL 文字でパディングされていることです。それらを取り除く方法がわかりません。
そのため、配列をループして、ヌル文字になったら、長さ (n) に注意し、その長さの新しいバイト配列を作成し、最初の n 文字を新しいバイト配列にコピーして使用することができます。それが最善の方法ですか、それとも簡単にする方法はありますか?
いくつかの簡素化されたコード:
data := make([]byte, 16)
c.Read(data)
s := strings.Replace(string(data[:]), "an", "", -1)
s = strings.Replace(s, "\r", "", -1)
s += "some other string"
response := []byte(s)
c.Write(response)
c.close()
また、ここで明らかに愚かなことを他に行っている場合は、知っておくとよいでしょう。