C# 多线程 为什么客户连接服务器正常,服务器端偶尔的会出现收不到数据的情况

太空11 2016-10-17 04:52:11
服务器接收到的信息是null,是客户与服务器间断开了吗?
发送的是byte[]
...全文
273 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanran_hill 2016-10-18
  • 打赏
  • 举报
回复
很久以前的印象,未必准确: socket连接建立以后,发送方(服务器端和客户端是对等的,都可以是发送方)如果不发送数据,接收方调用receive()会阻塞, 只有对方关闭连接时,才会返回,这是接收到的字节数是0,如果出现超时或者其它错误,会报异常。
太空11 2016-10-18
  • 打赏
  • 举报
回复
tcp/ip不应该丢包呀
vioalouyang 2016-10-18
  • 打赏
  • 举报
回复
丢包,这个通信过程中正常现象。增加丢包处理方法。
xian_wwq 2016-10-18
  • 打赏
  • 举报
回复
引用 楼主 xinshiji 的回复:
服务器接收到的信息是null,是客户与服务器间断开了吗? 发送的是byte[]
网络通信中,发生中断是正常的 个人感觉比较合理的方式是,Server收到数据后,给客户端应答包 客户端一定时间内没有收到应答就默认本次发送失败 需要重发或者重新连接
qq_36402605 2016-10-18
  • 打赏
  • 举报
回复
udp? 丢包是有可能的啊

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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