質問
vb.netで簡単なudp lanチャットアプリケーションを構築していますが、パケットをどのように分割する必要があるのでしょうか。送信された各パケットには、ID、ユーザー名、IPアドレスが含まれている必要があります。また、ユーザーリストとテキストメッセージを更新するためのjoinまたはleaveなどのコマンドパーツも必要です。これらすべてを単純なパケットに入れて、受信時に簡単に分割し、さまざまな部分にアクセスする最も簡単な方法を知りたいです。ありがとう。
UDPを使用しているのはこれがLANのみであるため、 *。*。*。255
編集:ジョンに答えてくれてありがとう。私が知りたいのは、パケットをフォーマットする最も簡単で強力な方法であるため、ユーザー名、ID、コマンド、テキストメッセージが含まれ、それを受信したユーザーはそれを解読して、書かれたメッセージのみを表示しますユーザー、または参加または退会などのコマンドで、適切な参加メッセージを表示し、ユーザーを例のリストに追加する場合。
解決
おそらくパケットをxmlでフォーマットし、受信側でlinq to xmlを使用してそれを分解します。また、フォーマットにJSONを使用することもできますが、解析が少し難しくなる可能性があります。
他のヒント
インスタンスの ToByteArray
メソッドと静的な FromByteArray()
メソッドを使用して適切なクラスを作成します(それぞれバイト配列へのシリアル化とバイト配列からの解析用)。次に、 UdpClient.Send()
を使用します。送信し、 UdpClientを送信します。 Receive()
で受信します。
ToByteArray
および<を支援するために、 BinaryReader
/ BinaryWriter
および/または BitConverter
を使用できます。 code> FromByteArray メソッド。 MemoryStream
をクイックメモリ内ストリームとして使用して、 BinaryReader
/ BinaryWriter
に渡すことができます。