我在c#中申请。我正在连续获取24097端口上的数据,我将该数据记录为
UdpClient client = null;
IPEndPoint ipep = null;
client = new UdpClient(24097);
client.Client.ReceiveBufferSize = 25000;
ipep = new IPEndPoint(IPAddress.Any,24097);
while(flag)
{
byte[] data= = client.Receive(ref ipep);
}
但我的问题是我收到的数据包不按顺序排列。我希望以顺序方式接收它们。请帮帮我。谢谢。
答案 0 :(得分:5)
UDP不保证您发送的数据顺序。这是“火与忘记”。如果需要将数据保存在有序流中,则需要使用TCP。
否则,您需要在数据报本身中实现某种序列ID。
答案 1 :(得分:1)
此链接可能会有所帮助
该样本有2个部分。 第一个是发送者(在某些PC中),另一个是接收者(在客户端PC中)。 发件人中提到的端口应与接收器中的端口相同。
发件人应用程序中有一个文本框和按钮(发送)按钮。 在各自的PC中运行这两个项目。
单击发件人中的“发送”按钮,文本框中的数据将按顺序发送给接收者。
希望它有一些用处。谢谢。