私はgolangのSIP over TCPモックサービスに取り組んでいます。受信したSIPメッセージは '\ r \ n \ r \ n'シーケンスで区切られています(今はSDPは気にしません)。そのデリミタに基づいてメッセージを抽出し、それを処理ゴルーチンに送りたいと思います。 golangの標準ライブラリを見ると、それを達成するための些細な方法はありません。 io
とbufio
パッケージには店舗はありません。区切り文字として設定 '/ R' とゴランはnet.TCPConnから4バイトをメッセージ分離として読み込みます。
* Reader.ReadBytes機能:現在、私は前方(BUFIOを)行くことの2つのオプションが表示されます。さらに処理はReadByte関数を使用し、デリミタの各バイトと順次比較し、必要に応じてそれらを読み込みません(かなり面倒です)
カスタムスプリット機能でスキャナを使用すると、 。私は、他のより良いオプションがあるかどうかを疑問に思う
、機能性は、それだけで、TCPストリームのための区切り文字を定義し、それからメッセージを抽出することが可能ではないことを信じるのは難しいとなるように、一般的なようです。
作品を魔法のように、簡単に確かに、感謝:) –