如何使用UDP协议按顺序获取数据包



我正在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);
}

但我的问题是,我得到的任何数据包都不是按顺序排列的。我想按顺序接收它们。请帮帮我。提前谢谢。

UDP不保证您发送的数据的顺序。它是"火和忘记"。如果需要将数据保持在有序的流中,则需要使用TCP。

否则,您将需要在数据报中实现某种序列ID。

此链接可能有助于

http://www.codeproject.com/Articles/176722/Sending-messages-to-workstations-using-Socket-Prog/?display=PrintAll&fid=1618703&df=90&mpp=25&noise=3&prof=错误&sort=位置&view=快速

此样品由两部分组成。第一个是发送方(在某些pc中),另一个是接收方(在客户端pc中)。发送器中提到的端口应与接收器中的端口相同。

发件人应用程序中有一个文本框和按钮(发送)按钮。在各自的PC中运行两个项目。

单击发件人中的"发送"按钮,文本框中的数据将按顺序发送到收件人。

希望它有用。非常感谢。

最新更新