如题,高手贴一下code,一起分析一下,要求程序在稳定性和效率上有保证。

解决方案 »

  1.   

    这个 比较底层了,设计协议的具体实现,需要网卡驱动的帮助,一般我们的socket通信都在这个上面作的
      

  2.   

    大家可能误解了,不是要实现什么协议,其实就是在socket上进行流量发送控制,现在已经有了办法:在socket上有接收线程和发送线程,接到一个包后应当进行解释并发送一个相应的包,这样发一个要等一个回应,所以增加一个全局变量N,连续发送i个包进行批量处理,连续接收N个包进行批量处理,每发一个包N自增1,每接到一个包N自减1,N达到一定的数目则不再发送或者接收,不知道大家明白没
      

  3.   

    你所说的应该跟tcp的滑动窗口协议的算法差不多吧
    有必要在应用级别对流量进行控制吗?模拟一下还是可以的。
      

  4.   

    在数据链路层和传输层已经应用滑动窗口协议了。
    如果要在应用层自己实现这个协议的话,可以这样考虑:
    不是两个线程,而是在接受端和发送端各有一个线程,并且各自维护比如8个大小的窗口,发送端最多一次可以发送一半4个数据包,此时把current设成0,,表示准备接受第0个回应包,如果等到0,1,2的回应,就把cruuent设成2,如果只收到0,2,就只能设成0,并把2包存在数组2的位置,根据超时计数器,再次发送数组中还没有接受到的数据包,直到前四个回应都到达发送端,窗口向后滑动,覆盖4--7,重复。
      

  5.   

    上面有一点搞错了,如果收到0,1,2,把cruuent设成3,如果收到0,2,把current设成1