社区
网络通信/分布式开发
帖子详情
散100分
c58342418
2009-10-26 02:48:21
哎,开个帖子没人看,大家帮忙看看撒...刚接触这方面的.
IdTCPClient 和IdTCPServer 连接后,没有正常段开连接(IdTCPServer 没有收到IdTCPClient的断开信息).IdTCPServer 怎么判断客户端是否还处于连接状态?
...全文
185
27
打赏
收藏
散100分
哎,开个帖子没人看,大家帮忙看看撒...刚接触这方面的. IdTCPClient 和IdTCPServer 连接后,没有正常段开连接(IdTCPServer 没有收到IdTCPClient的断开信息).IdTCPServer 怎么判断客户端是否还处于连接状态?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
水目
2009-10-28
打赏
举报
回复
不懂
国风
2009-10-28
打赏
举报
回复
[Quote=引用 4 楼 c58342418 的回复:]
引用 2 楼 cgfhz 的回复:
简单的处理方法:
服务端判断客户端最后活动时间
如果最后活动时间已经超出规定的时间
则服务端主动断开客户端
这样做要注意:
客户端一定每隔几分钟发一个测试连接包才行
服务端收到测试包不处理,只更新最后活动时间
如果很多客户端向一个服务端发包,服务端受得了 ?这种方式跟我们公司现在使用的OA差不多,但效果不好.有没有通过服务器来判断是否还和客户端处理连接状态??多谢
[/Quote]
你可以单独开个线程检查的,同时在线几千可以承受的,每几秒钟循环扫描一次客户端列表
还有就是你的服务端要写的好,用户数多,并发大,可以用IOCP模型
husion01
2009-10-28
打赏
举报
回复
帮UP
ailonchang80
2009-10-28
打赏
举报
回复
心跳判断,这样可以处理对方正常或者非正常断开的情况
另外对方正常断开时,本地是可以接收到相应消息的
说明,我没用过控件,winsock是可以的
c58342418
2009-10-27
打赏
举报
回复
[Quote=引用 5 楼 starluck 的回复:]
引用楼主 c58342418 的回复:
哎,开个帖子没人看,大家帮忙看看撒...刚接触这方面的.
IdTCPClient 和IdTCPServer 连接后,没有正常段开连接(IdTCPServer 没有收到IdTCPClient的断开信息).IdTCPServer 怎么判断客户端是否还处于连接状态?
TCP 业务操作完了,就断开. 要么就让服务器加个时间,多久没活动,就踢掉.
要么就加个心跳上去.
[/Quote]
多谢,请问心跳是什么意思?不会是定时重客户端向服务端发送请求吧 ?
haitao
2009-10-27
打赏
举报
回复
心跳是应用自己实现的一个定时握手的协议
水目
2009-10-27
打赏
举报
回复
不懂了 55555555
ok1411
2009-10-27
打赏
举报
回复
心跳判断吧
就是客户端定时发个消息给服务端,以便服务端来判断该连接是否正常
iqyely
2009-10-27
打赏
举报
回复
呵呵,接分。
gaozb
2009-10-27
打赏
举报
回复
接分,老汉没有分了。
sanguomi
2009-10-27
打赏
举报
回复
这种东西如果客户端比较少,用LIST那样的单线表就OK,如果客户端比较多,单线表就有效率问题,
用哈希+ 双链表的组合比较好,用哈希+ LIST也可以
type
LastConnectTime: Cardinal; // 最后一次登陆时间
UseId: Integer;
end;
另外你设计个心跳,比如一分钟客户端给服务端发包通讯,然后服务端加其加载到数据结构中,自己定义离线时间,比如5分钟(如果在5分钟内没收到新包就算离线),另外自己写个扫描线程,扫描有多少超过5分钟没收到包,
另外还可以自己在服务端给所有客户端发一个测试包,根据收到的回包来判断
yangbing694383929
2009-10-27
打赏
举报
回复
帮顶!
7年
2009-10-27
打赏
举报
回复
接分吧,不太懂。
XD王
2009-10-27
打赏
举报
回复
jf
husion01
2009-10-26
打赏
举报
回复
JF
haitao
2009-10-26
打赏
举报
回复
感觉很多控件对tcp状态的判断只考虑了一些常见、明确的断、连,
至于网络差的情况下出现的异常状态,控件没有及时、完全抓到并触发对应的处理消息
支持中文哦
2009-10-26
打赏
举报
回复
帮顶
xiaowei_001
2009-10-26
打赏
举报
回复
winsock
iqyely
2009-10-26
打赏
举报
回复
来关注下。
liugaohui
2009-10-26
打赏
举报
回复
不熟悉控件的使用
加载更多回复(7)
蓝牙杂
散
超标_杂
散
发射
发信机的杂
散
辐射是指用标准信号调制时在除载频和由于...以按照图一进行连接,然后按照如下截图设置进行操作(测试仪器:频谱仪E4407B、蓝牙基站MT8852B、功
分
器1502A、衰减器)。图1(1)设置RBW=
100
kHz,VBW=30kHz。...
小数
分
频锁相环中的整数边界杂
散
IBS
最近在想为什么项目里的小数
分
频PLL要在输入端加入预
分
频器,因为从噪声的闭环传输函数角度看,预
分
频器的加入无疑是引入了更多的输入噪声。后来找到资料应该是和整数边界杂
散
有关。 什么是整数边界杂
散
(IBS, ...
杂
散
干扰解决办法_6种常见杂
散
的成因
分
析及解决办法
而要达到最佳SFDR,也就是在系统信号链中实现无杂
散
的干净噪底,可能就更加困难了。杂
散
信号可能源于ADC周围的不合理电路,也有可能是因恶劣工作环境下出现的外部干扰而导致。针对高
分
辨率、精密ADC应用中的杂
散
问题...
晶振噪声及杂
散
_差
分
晶振噪声和抖动简介
然而,噪音和抖动在系统内是不可避免的,并且可以对差
分
振荡器性能产生负面影响。噪音基础噪声是来自内部或外部的信号中的任何不需要的信息外部来源,有些是不可避免的,有些则可以被删除来自系统。差
分
晶振抖动基本...
杂
散
干扰解决办法_实用干货——6种常见杂
散
问题的成因
分
析及解决办法
原标题:实用干货——6种常见杂
散
问题的成因
分
析及解决办法虽然目前的高
分
辨率SAR ADC和Σ-Δ ADC可提供高
分
辨率和低噪声,但可能难以实现数据手册上的额定SNR性能。而要达到最佳SFDR,也就是在系统信号链中实现无杂...
网络通信/分布式开发
1,593
社区成员
32,964
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章