首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

IdUDPServer 超时如何判定

2012-02-22 
IdUDPServer 超时怎么判定?是这样的,我的服务端和客户端都使用IdUDPServer ,客户端的端口设置为5801,服务

IdUDPServer 超时怎么判定?
是这样的,我的服务端和客户端都使用IdUDPServer ,客户端的端口设置为5801,服务端的端口设置为5800,

现在客户端向服务端发送了一条消息(正常情况下,服务端和客户端发送和接收数据都没有任何问题,我还在服务端上设置了一个心跳包参数,只要服务端收到一条信息就会向客户端反回一个心跳包,表示收到了数据。我现在想处理当服务端关闭的情况。),下面是我不会做的:
我希望客户端设置超时时间为3秒,如果在三秒之内没有收到来自服务端返回的心跳包,就判定这一条消息发送失败,然后再做相应处理,请问这个处理过程该怎么做?请帮忙给出相应实现代码,谢谢。谢谢。


[解决办法]
首先设置timer的interval属性值为超时时间3000,当发送数据时 使timer的enabled属性为true 接收到返回的数据后 把timer的enabled属性为false 如果在超时时间内没收到数据 就是超时了 在ontimer事件中写超时提示
[解决办法]
一楼说的差不多了,

放一个Timer,做好3秒的定时,再设置一个表示是否接收到数据的布尔变量bRecv,
[解决办法]
无所谓TCP和UDP
你收到包 保存一下时间,另外开个线程去读那个时间和当前时间做比较,如果超过3秒 做特殊处理
我以前几十万的在线,都是用这种方式去扫描用户是否在线的
3秒时间有点太短了,你得考虑网络延时

热点排行