社区
网络及通讯开发
帖子详情
网络断掉时SOCKET也断掉
LWLIFE
2007-12-04 02:07:58
我用SOCKET写了个阻塞模式的程序,当一方RECV时,如果对方成功的COLSESOCKET的话那能收到错误的返回值,可如果是网络断了这样的原因程序就没有反应了,有什么什么办法在网络断掉的时候也能让双方知道呢,如果要是用信号检测什么的,就还要多启用一个线程去检查,有没有什么其他的办法呢,大家来讨论一下吧.
...全文
134
6
打赏
收藏
网络断掉时SOCKET也断掉
我用SOCKET写了个阻塞模式的程序,当一方RECV时,如果对方成功的COLSESOCKET的话那能收到错误的返回值,可如果是网络断了这样的原因程序就没有反应了,有什么什么办法在网络断掉的时候也能让双方知道呢,如果要是用信号检测什么的,就还要多启用一个线程去检查,有没有什么其他的办法呢,大家来讨论一下吧.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
怎么没人来聊聊这个话题的
java
SOCKET
断掉
了详解
目前较为流行的
网络
编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务
时
向服务器提 出申请。服务器一般作为守护进程始终运行,监听
网络
端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同
时
自己继续监听服务端口,使后来的客户也 能及
时
得到服务 兄弟做好了一个网关。原理如下:网关程序需要去连接一堆的远程机子,并且是保持长连接,对每一个SO
为何
网络
断掉
后,Send函数还能发送成功
每一个
socket
有一个协议的缓冲区,你调用send函数的
时
候,并不是直接将数据发送的
网络
上,只是拷贝到
socket
的缓冲区里,然后有协议根据
网络
的状况自行将数据发送到
网络
上,如果
socket
的缓冲区没有满的话,你调用send函数就会成功,如果缓冲区满了,你的调用就是失败,所以,当你把网线拔掉的
时
候,
socket
其实还没有死掉,因为
socket
是每隔一段
时
间来和相连的
socket
发送一个消息,如果连续发送几个消息没有收到回答,才认为对方断开连接的,在这段
时
间内,你的
socket
并没有死掉,缓冲区也还在,所以
JAVA
Socket
编程的两个问题,readline(),判断
Socket
连接
断掉
1。通过BufferReader的readline()方法来从
Socket
读字符,可能你会发现根本无法读到任何内容,这是Server
Socket
没有在每行末强制写入"/r/n"造成的。解决的办法是用read()方法,然后自己来判断是否读到行末或者换行2。如果服务端
断掉
了
Socket
连接,这是你写的
Socket
连接是无法判断的,isConnected(),isClose()都不能判断。这
时
你只能
socket
网络
异常断开
那
网络
异常断开原因主要有那些呢?归纳起来主要有以下两种: 1、客户端程序异常。 对于这种情况,我们很好处理,因为客户端程序异常退出会在服务端引发ConnectionReset的
Socket
异常(就是WinSock2中的10054异常)。只要在服务端处理这个异常就可以了。 2、
网络
链路异常。 如:网线拔出、交换机掉电、客户端机器掉电。当出现这些情况的
时
候服务端不会出现...
socket
和http区别有哪些
socket
和http区别有哪些 1、
socket
连接就是所谓的长连接,理论上客户端和服务器端一旦建立起连接将不会主动
断掉
; 2、http连接就是所谓的短连接,即客户端向服务器端发送一次请求,服务器端响应后连接即会
断掉
。
socket
和http区别: HTTP协议:简单对象访问协议,对应于应用层 ,HTTP协议是基于TCP连接的 tcp协议: 对应于传输层 ip协议: 对应于
网络
层 TCP/IP是传输层协议,主要解决数据如何在
网络
中传输;而HTTP是应用层协议,主要解决如何包装数据。
Socket
是对TCP
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章