程序A发UDP三个包(发包间隔比较短)
U01, 
U02, 
U03
程序B接收包竟然变成
U02
U03
U01
怎样解决顺序问题?

解决方案 »

  1.   

    由于网络质量可能会造成无序,在你的包里面自己加入序号
    count=0;
    while(1)
    {
    package->id=count;
    count++;
    send(...);
    }
      

  2.   

    udp是不可靠的通信,接收端出现乱序的现象很正常,因为udp本身就没有提供保证数据顺序到达的机制
    解决方法前面几位说得很清楚了
      

  3.   

    udp乱序是有可能的!看你的环境
      

  4.   

    UDP就是这样的,如果要保证可靠通讯,你得自己控制,包括排序,丢失的包的重发问题如果没有特殊原因.还是用TCP方式比较好
      

  5.   

    tcp也会出现这个问题,写通信程序自己必须用滑窗或者一问一答方式,解决先发后到的问题。