散100分

c58342418 2009-10-26 02:48:21
哎,开个帖子没人看,大家帮忙看看撒...刚接触这方面的.
IdTCPClient 和IdTCPServer 连接后,没有正常段开连接(IdTCPServer 没有收到IdTCPClient的断开信息).IdTCPServer 怎么判断客户端是否还处于连接状态?
...全文
185 27 打赏 收藏 转发到动态 举报
写回复
用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)

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧