tcp发送的数据一定都能收到,不会中间少几个字节。检查你的应用程序,跟踪收到的字节的个数跟你解析数据时处理的个数是否一致。

解决方案 »

  1.   


    服务器端:
    ClientSocket.Send(sendbytes, 0, sendbytes.Length, SocketFlags.None);客户端:
    NetworkStream ns;
    int bytesRead = ns.Read(recvbytes, 0, recvbytes.Length);服务器端ClientSocket的定义处
     this.ClientSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 0);
      

  2.   


    服务器端:
    ClientSocket.Send(sendbytes, 0, sendbytes.Length, SocketFlags.None);客户端:
    NetworkStream ns;
    int bytesRead = ns.Read(recvbytes, 0, recvbytes.Length);服务器端ClientSocket的定义处
     this.ClientSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 0);不是全都收不到,而是有时隔几秒收到,有时隔几分钟。但是服务器端是一直在发送的。为什么有时收不到有时收的到呢?是在一台服务器上跑的。
      

  3.   

    会不会是和ClientSocket的定义时
     this.ClientSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 0); 
    里面的, SocketOptionName.ReceiveTimeout有关?
      

  4.   

    找到原因了,是我在别的线程里面也用到当前的NetworkStream了,所以才影响到的。