|
断线重连该如何实现?
➢ A:Agent 组件可以在接收到断线通知事件(OnClose)时立刻发起 Connect() 调用
进行重连;Client 组件则不能接收到断线通知事件(OnClose)时立刻调用 Start() 方
法进行重连。因此,Client 组件可以选择以下方法实现重连:
1) 启动一个监测线程或定时器,定期调用组件对象的 GetState() 方法检查组
件对象的状态,如果状态为 SS_STOPED 则执行重连。
2) 启动一个监测线程,在组件的 OnClose 事件中向监测线程发送断线重连通
知(Event)激活监测线程,监测线程循环调用组件对象的 GetState() 方法
检查组件对象的状态,直到状态为 SS_STOPED 则执行重连。
3) 使用窗口消息机制结合 :ostMessage() / :ostThreadMessage() API 函数
替代 2) 中的监测线程和通知(Event)。
4) HP-Socket v5.7.x 版本开始,可以使用 Wait() 方法实现重连:组件 Start()
成功后启动重连检查线程,在重连检查线程中调用 Wait() 进行等待,当
Wait() 返回 TRUE 时执行重连。
|
|