用距离较远的一台因特网上机器测试,有以下问题:
1、send和recv最大传输的数据报长度是1452,如果是大于等于1453个字节,客户端发送成功,服务端就阻塞在recv上,不知为什么。
2、服务端子线程监听到一个套接字后发送第一包数据,然后阻塞在recv,然后在主线程成功发送一个数据包的时候,子线程的recv返回SOCKET_ERROR.
在局域网测试却没有这些问题,请高人指点。

解决方案 »

  1.   

    使用什么SOCKET?
    采用的组塞,非组塞?1.这种情况,你需要在server端看看你发送的数据对不对
    就是你是否成功的发送了1453个字节
    2.同样你也需要看看是否接收到数据
    如果数据正常,那就是是你的程序有问题了
      

  2.   

    tcp连接,两端都是阻塞的,
    主线程成功发送一个数据包的时候,对方也成功接到了这个数据包,然而子线程正在阻塞的recv返回了
      

  3.   

    这是正常的。你用1500减去ip头,tcp头就是剩下这么多了。在tcp/IP详解中有说。mtu
      

  4.   

    KAO,把程序贴出来看,
    用TCP协义还去管什么MTU
    加我吧,158669899
      

  5.   

    真是奇怪,我的客户端如果连续发送数据,服务端就会阻塞,而如果客户端每发送一次数据后Sleep(1000)或者更长时间,就可以了