Chinaunix
标题:
socket连接问题
[打印本页]
作者:
w3231717
时间:
2007-11-14 13:49
标题:
socket连接问题
SERVER端接受到申请后,构建连接.
用SELECT函数判断是否有数据到来,CLIENT端和我正常连接并无数据时SELECT函数返回0.CLIENT停掉后SELECT一直返回1.接收还没有信息.
SERVER端怎么能判断CLIENT端已经不存在了?
作者:
timepie
时间:
2007-11-14 13:57
如果是Tcp连接的话
在
FD_ISSET(sokfd, &sth);
中
rev = recv(.....)
if (rev == 0)
就判断客户端就退出了
其实,不用select的
如果判断拔网线之类的断开(物理断开),我听同学说有个心跳函数(心搏函数)
可是我不会
作者:
w3231717
时间:
2007-11-14 14:01
我用的就是心跳,我得时时看有没有数据.要是网络瞬间有问题就会出现上面的问题.判断不出CLINET的死活!~
作者:
timepie
时间:
2007-11-14 14:43
我有个想法是,可不可以让客户端定时的发个空数据给服务端
服务端接受到就说明客户端还活着,
如果过了定时+(就是比定时稍微长那么一点的时间)了,还没有收到客户端的消息,
就判断这个客户端挂了~
仅仅是想法~HOHO:wink:
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2