我正在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中运行两个项目。
单击发件人中的"发送"按钮,文本框中的数据将按顺序发送到收件人。
希望它有用。非常感谢。