创建一个UDP数据包,我可以拆分

时间:2009-03-10 16:25:23

标签: .net vb.net udp packet

我正在vb.net中构建一个简单的udp lan聊天应用程序,我想知道如何分割我的数据包。每个发送的数据包应该具有id,用户名和IP地址,它可能也是一个命令部分,用于加入或离开以更新我的用户列表和文本消息。我想知道将所有这些放在一个简单的数据包中的最简单方法是什么,然后在接收时轻松拆分并访问它的不同部分。感谢。

我正在使用UDP,因为这只是在局域网中所以我正在向*.*.*.255

广播 编辑:谢谢你的回答乔但我已经知道了这一切。我想知道的是什么是最容易和最强大的格式化我的数据包的方式,因为它们包括用户名,id,命令和文本消息,然后接收它的用户解密它只显示由哪个写的消息用户或者如果是加入或离开等命令来显示加入的相应消息,并将用户添加到列表中以示例。

2 个答案:

答案 0 :(得分:2)

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

您可能希望使用BinaryReader / BinaryWriter和/或BitConverter来帮助ToByteArrayFromByteArray方法。您可以使用MemoryStream作为快速内存中的流传递到BinaryReader / BinaryWriter

答案 1 :(得分:0)

我可能只是在xml中格式化数据包然后在接收端使用linq到xml将它拉开。您也可以使用JSON格式,但可能稍微难以解析。