本帖最后由 VisualEleven 于 2012-01-18 10:23:33 编辑

解决方案 »

  1.   

    看上去是系统问题,send阻塞说明系统的发送缓冲区没有地方了,所以send就会等待
      

  2.   

    补充一下,就是在WINSERVER2003上发送少量数据的时候,还是可以通讯的,CLIENT端接收最多一次只有2K不到的数据,就开始等待了,SERVER端就停在了send那不动
      

  3.   

    那增加发送缓冲区看看,SO_SNDBUF
      

  4.   

    我觉得发送缓冲区大小应该没有关系的,就是再小,也应该会发送啊,CLIENT端不会接收不到数据 啊最多只是快慢的问题吧,不会停才对
      

  5.   

    建议你先检查几个函数的返回值,包括Read和send的返回值,看看是否都成功了。
    另外,从你的描述来看,这个是100%复现的问题,那么你甚至可以直接调试,加断点看看。
      

  6.   

    send的返回值都是MY_BUFF定义的4096,两次左右循环之后,就停在send 处了,因为我是编译好放到winserver2003上用的,没办法设置断点