tcp/ip协议下,两台组网的计算机互传数据,传输数据的码率为2Mbit。传10多兆数据后,就会出现死机的现象,非任务管理器关闭方式不能关闭程序。
   PS:发送数据是由定时器控制发送,1秒钟发一次,发送的数据是从已存盘的磁盘文件里读出来的。接收数据是由OnReceive函数完成的。
   我如何才能使网络不堵呢?不是千兆以太网么?怎么来回4兆就搞不定了!请各位赐教啊!小女子拜谢先!

解决方案 »

  1.   

    1)你的网络程序写的肯定有问题,存在等待或阻塞。
    2)采用release版运行,debug运行效率不高
    3)所谓的千兆网、百兆网单位是bit,你的统计是Byte,不是一个概念,单位不统一相差8倍
      

  2.   

    程序貌似没有问题,我的码率就是要这么高啊!是设计需要!查了很多文献,说是tcp/ip传输就是容易堵的,各位!在网络连接上后直接调用一下setsockopt,将接收和发送的内存都设置大一点,测了20多次都灭有问题了,不知道算不算解决问题了
      

  3.   

    setsockopt,将接收和发送的内存都设置大一点,是有可能规避问题的
      

  4.   


    我也做过,因为使用TCP要握手,要确认呀,那些,所以传输效率不高,但是可靠性好。把它们的缓存设大一点能解决就好。
      

  5.   

    此问题应该是tcp协议中的滑动窗口已满,因为你客户端发送数据太块,导致服务器无足够的空间去收取,不断的减小缓动窗口的大小,以至于最后为0,导致发送失败。建议你抓包看下,是不是有很多windows full,或者去研究下滑动窗口,谢谢@!