网络断掉时SOCKET也断掉

LWLIFE 2007-12-04 02:07:58
我用SOCKET写了个阻塞模式的程序,当一方RECV时,如果对方成功的COLSESOCKET的话那能收到错误的返回值,可如果是网络断了这样的原因程序就没有反应了,有什么什么办法在网络断掉的时候也能让双方知道呢,如果要是用信号检测什么的,就还要多启用一个线程去检查,有没有什么其他的办法呢,大家来讨论一下吧.
...全文
132 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
LWLIFE 2007-12-17
  • 打赏
  • 举报
回复
那我设置30秒可以了吧
LWLIFE 2007-12-10
  • 打赏
  • 举报
回复
哦好的,一般这样超时的时间设置为多长为好,我设置了3分钟不知道是否过长,谢谢
痞子酷 2007-12-10
  • 打赏
  • 举报
回复
采用select方式比较好一些。
xiehao02 2007-12-10
  • 打赏
  • 举报
回复
tcp超时才半分种,你要设置3分钟,还不如不用了
我不懂电脑 2007-12-05
  • 打赏
  • 举报
回复
通常断开服务器会得到通知,这时recv返回是0。但非正常断开则不一定,比如拔网线,这可能要等到TCP超时,这个时间非常长。这样阻塞接收最好是设一下socket超时
int timeout = 0;

setsockopt(socket,sql_socket,so_rcvtimeo,&timeout,sizeof(timeout));
LWLIFE 2007-12-04
  • 打赏
  • 举报
回复
怎么没人来聊聊这个话题的

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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