急!socket,客户端recv出错后退出,而服务器端的socket却依旧工作正常,两边socket信息不对称,为什么?

ewuby 2009-09-10 10:21:19
该程序有时候可以整天正常工作运行,但某些天又会出现如上问题,就是客户端会突然recv出错而退出,但是服务器端连接在此客户端上的socket却继续正常工作,丝毫没有发觉客户端已退出,检查代码本身也没发现问题。

客户端与服务器端分别位于不同的网段,现怀疑是网络的问题,或者说是防火墙的问题。不过本人对网络/防火墙不是很了解,希望懂的xdjm们帮忙推敲推敲,防火墙会不会让客户端的socket读操作失败,但却让服务器端不察觉socket这个问题而继续工作下去(服务器端的一个定时器会每隔几秒去读写一下 socket)?
...全文
54 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengyuyan 2009-09-10
  • 打赏
  • 举报
回复
你的Socket工作模式是什么?TCP or UDP ?TCP应该会报错。
ewuby 2009-09-10
  • 打赏
  • 举报
回复
想到另一个问题:
如果客户端socket以非正常方式(非优雅方式)退出,服务器端的socket还能正常工作(recv)吗?
ewuby 2009-09-10
  • 打赏
  • 举报
回复
是啊,这就是神奇的地方了,服务器端recv时只是查到没有数据内容但socket还是存在能工作的~
tigerii 2009-09-10
  • 打赏
  • 举报
回复
服务器端的一个定时器会每隔几秒去读写一下 socket,还能读到正确值?除非成仙了

110,536

社区成员

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

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

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