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