当服务器端通过 Socket.Send ()发送数据后,客户端有时能收到,有时收不到,请问是什么原因?
—- 5分
tcp发送的数据一定都能收到,不会中间少几个字节。检查你的应用程序,跟踪收到的字节的个数跟你解析数据时处理的个数是否一致。
—- 5分
很多东西要匹配的
—-
服务器端:
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);
—-
不是全都收不到,而是有时隔几秒收到,有时隔几分钟。但是服务器端是一直在发送的。为什么有时收不到有时收的到呢?是在一台服务器上跑的。
—- 5分
http://bbs.csdn.net/topics/390946886
—-
会不会是和ClientSocket的定义时
this.ClientSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 0);
里面的, SocketOptionName.ReceiveTimeout有关?
this.ClientSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 0);
里面的, SocketOptionName.ReceiveTimeout有关?
—-
找到原因了,是我在别的线程里面也用到当前的NetworkStream了,所以才影响到的。
CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Socket.Send 发送数据后部分数据无法收到的原因!