服务器内定义了一个套接字数组用于存放客户端的连接,当有客户端连接时,数组加1;有客户端断开时,要把所占用的套接
字空出来。但不知道断开的是哪个客户端。利用客户端的Close();服务器OnClose()响应。。。。。。。
15 个解决方案
#1
服务器端不是和每一个CLient的socket都有个peer socket~
#2
種下你的種子
#3
服务器OnClose();内应该怎么写?
#4
记录你已建立socket 然后再处理
#5
如果是正常断开,会自动有个close,如果是非正常断开无法判断,除非用定时器定时发测试包
#6
正解
#7
我也有这个问题
#8
客户端正常断开,那服务器怎样判断是哪个对应的客户套接字断开呢?????
#9
getpeername()
#10
在网络编程中,为了处理非阻塞模式下的数据发送与接收问题,通常是线程与I/O套接字模式合用吧,在IO里面,可以定时判断套接字处于那一种状态,如果判断是FD_CLOSE,就可以知道客户端要断开链接,由于是在线程里面处理这些信息,只要把相应的socket值置空或者关闭就可以了。
#11
当服务器响应客户端的断开响应OnClose()时,在该函数内调用Close();函数,此时对应的客户套接字将会关闭,且套接字的成员变量ClientSocket[i].m_hSocket==INVALID_SOCKET可以判断是哪个对应的客户套接字断开。。。
#12
这是获得IP地址、端口信息的啊。
#13
这个方法我试过了,管用。还不错,谢谢!
#14
正解
目前只想到了这一种方法
#15
CSocket是阻塞模式的,,,,,
#1
服务器端不是和每一个CLient的socket都有个peer socket~
#2
種下你的種子
#3
服务器OnClose();内应该怎么写?
#4
记录你已建立socket 然后再处理
#5
如果是正常断开,会自动有个close,如果是非正常断开无法判断,除非用定时器定时发测试包
#6
正解
#7
我也有这个问题
#8
客户端正常断开,那服务器怎样判断是哪个对应的客户套接字断开呢?????
#9
getpeername()
#10
在网络编程中,为了处理非阻塞模式下的数据发送与接收问题,通常是线程与I/O套接字模式合用吧,在IO里面,可以定时判断套接字处于那一种状态,如果判断是FD_CLOSE,就可以知道客户端要断开链接,由于是在线程里面处理这些信息,只要把相应的socket值置空或者关闭就可以了。
#11
当服务器响应客户端的断开响应OnClose()时,在该函数内调用Close();函数,此时对应的客户套接字将会关闭,且套接字的成员变量ClientSocket[i].m_hSocket==INVALID_SOCKET可以判断是哪个对应的客户套接字断开。。。
#12
这是获得IP地址、端口信息的啊。
#13
这个方法我试过了,管用。还不错,谢谢!
#14
正解
目前只想到了这一种方法
#15
CSocket是阻塞模式的,,,,,