1

我正在 vb.net 中构建一个简单的 udp lan 聊天应用程序,我想知道我应该如何拆分我的数据包。每个发送的数据包都应该有一个 id、一个用户名和来自哪里的 ip 地址,也许还有一个命令部分,比如加入或离开,以更新我的用户列表和一条短信。我想知道将所有这些放在一个简单的数据包中的最简单方法是什么,然后在收到它时轻松拆分并访问它的不同部分。谢谢。

我正在使用 UDP,因为这仅在局域网中,所以我正在广播到*.*.*.255

编辑:谢谢你的回答乔恩,但我已经知道了。我想知道的是最简单和最强大的方式来格式化我的数据包,使它们包括用户名、id、命令和文本消息,然后接收它的用户解密它以仅显示由哪个写入的消息用户,或者如果它是诸如加入或离开之类的命令,以显示加入的适当消息并将用户添加到列表中,例如。

4

2 回答 2

2

ToByteArray使用实例方法和静态方法创建一个适当的类FromByteArray()(分别用于序列化为字节数组和从字节数组解析)。然后用于UdpClient.Send()发送和UdpClient.Receive()接收。

您可能想要使用BinaryReader/BinaryWriter和/或BitConverter帮助使用ToByteArrayFromByteArray方法。您可以使用 aMemoryStream作为快速内存流来传递给BinaryReader/ BinaryWriter

于 2009-03-10T16:32:29.973 回答
0

我可能只是在 xml 中格式化数据包,然后在接收端使用 linq to xml 将其分开。您也可以使用 JSON 作为格式,但这可能会稍微难以解析。

于 2009-03-31T00:43:23.903 回答