首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

[]socket编程一方突然断开连接,select方法失效有关问题

2012-09-17 
[求助]socket编程一方突然断开连接,select方法失效问题如题,当双方建立好通讯之后,用select方法监测套接字

[求助]socket编程一方突然断开连接,select方法失效问题

    如题,当双方建立好通讯之后,用select方法监测套接字的可读,完全正常,但是如果有一方突然断线,对方的select方法就会失效,不知道什么原因?求解释!

    比如client端已经和serv段建立好连接了,serv方首先用select函数检测套接字是否可读,可读则用recv函数来接受消息,client方用send发送消息,此时client突然掉线,则serv方的select方法就会失效,即不再阻塞!

 

     select失效就是,如果客户端在发送数据时候突然掉线,此时客户端已经没有数据发送到服务器端,但是select监测的时候还是当有数据过来,并不阻塞。

 

    求大神指点这是什么原因?如何解决?

1楼xumaojun昨天 18:53
描述不够清楚,select失效是什么意思,socket本身是阻塞的还是非阻塞的,一般服务器和客户端需要维护一个心跳包
Re: memoryjs1小时前
回复xumaojunn就是如果服务器向客户端一直发送数据,select监听读的时候,没有数据过来就会阻塞,但是如果客户端突然掉线,此时客户端没有数据过来,select却不阻塞了,当成是有数据过来了

热点排行