.net socket奇怪的问题:发送和接收次数不一致!

liuyifeiw2372 2009-06-27 10:56:27
我现在再做一个网络程序,用到了socket,却发现了一个奇怪的问题。
我在客户端使用clientSocket.Send(byteMsg),发送了六次,在服务器端使用tcpListener.Accept(port)得到了一个serverSocke,使用serverSocke.Receive(buffer)两次就收到了客户端六次发来的数据!第一次收到的是客户端第一次发送的,第二次收到的是客户端后五次发送的。
还有一个奇怪的事情就是我在客户端的数据是以"\r\n.\r\n"结尾的,但是在服务器端使用strData.EndsWith("\r\n.\r\n")竟然会返回False!
有人碰到类似的问题吗? 能说明一下么?
...全文
159 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
CGabriel 2009-06-27
  • 打赏
  • 举报
回复
正常的事情,tcp 本来就是一个基于流的通信协议,需要自己去解析数据包
LQknife 2009-06-27
  • 打赏
  • 举报
回复
这要看你发送的数据量是多大了
超过了网卡的缓存就出去了,没超为了提高性能就会可能会缓存起来一起发出去
或者是接收端缓存起来一次性的交个receive方法
\r\n最好换成Enviroment.NewLine再试试

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧