朋友们cs结构下,Server如何实时(几秒内也允许)检测多个client的在线情况? 希望讨论多种方案。另外问一下:TCP联接(不是传输)能发现非正常断开(如client关机、网线断了)吗?TCP一个端口的连接数有限制吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单,1、做一个线程,定时去检查所有client的在线情况。2、给client实体添加一个处理线程,发送test消息,如果收不到client的响应,就认为是断开了。3、 另外问一下:TCP联接(不是传输)能发现非正常断开(如client关机、网线断了)吗?TCP一个端口的连接数有限制吗?________________ 关机有FD_CLOSE消息, 网线断了就没有. 所以要定时 PING. use SetSockOpt() set parameter--KEEPALIVEas the server check the client at a cycle, in theory, the socket counter is unlimited. 不重叠的话,TCP一个端口同时只能存在一个连接。BOOL b = true;SetSockOpt( hSocket, SOL_SOCKET, SO_KEEPALIVE, (LPSTR)&b, sizeof(BOOL)); 谢谢大家,首先MFC里有个类accept没个端口好像最多接5个联接,而且好像ip欺骗就是利用这个来使欺骗ip主机暂时不能响应的,有确定的答案吗?然后 lichungen的信息可能就是我最想要的,我试试。samyoung(sam)的做法,以前我是想这样,不过觉得在负载重的情况下,似乎会误报,尤其是第二种,象200个client怎么办,同时发test似乎不好。请继续讨论,过两天我结贴给大家,我前些天结的贴好想别人还没得到分,是不是要等几天?还有有两个贴子没人回,我自己发现的有什么节约分的方法?这个贴子大家好热情所以所有的问题我都忍不住问了:) 哦? heartthrob,好主意在等两天,欢迎新的讨论 再说说,其实对于通信来讲,这些东西开销很小的。关于通信系统的心跳测试机制,以前也讨论过多次,我认为,还是每个client和server之间都有线程来处理link test比较好,开销也不大,为什么,因为数据量其实很小,一个数据包头加一个状态字就可以了。server端本来就有处理数据接收的线程,对每个client得数据都同样处理,就可以了。 AfxGetApp()->LoadIcon(IDI_ICON_FOUR)//在OnCreate函数里AfxGetApp是获取进程中MainFame对象的指针? mfc消除enter键退出窗口 ado 连接数据库 引用出错误 这样创建的字体需要删除哪些资源(急) 为何我写的MFC 写的ACTIVEX生成的idl 我用MIDL编后, 在.h文件中没有我自己的接口函数呢. 操,郁闷。没人回答我问题。 如何将某一工具按钮的图标在两个位图中切换? recv阻塞线程的问题 求助:关于Memo的问题 ADO 访问数据库 此问题OLE DB 如何解决,高分求救 $$$ 各位朋友,如何写开发总结?$$$
________________
关机有FD_CLOSE消息, 网线断了就没有. 所以要定时 PING.
as the server check the client at a cycle,
in theory, the socket counter is unlimited.
SetSockOpt( hSocket, SOL_SOCKET, SO_KEEPALIVE, (LPSTR)&b, sizeof(BOOL));
然后 lichungen的信息可能就是我最想要的,我试试。
samyoung(sam)的做法,以前我是想这样,不过觉得在负载重的情况下,似乎会误报,尤其是第二种,象200个client怎么办,同时发test似乎不好。
请继续讨论,过两天我结贴给大家,我前些天结的贴好想别人还没得到分,是不是要等几天?还有有两个贴子没人回,我自己发现的有什么节约分的方法?这个贴子大家好热情所以所有的问题我都忍不住问了:)
在等两天,欢迎新的讨论