zoukankan      html  css  js  c++  java
  • [转载红鱼儿]kbmmw 开发点滴:kbmWTCPIPInfyClientTransport联接状态

    kbmWTCPIPInfyClientTransport联接状态

    当客户端请求一个Service时,kbmWTCPIPInfyClientTransport.Active是什么样呢?做一个简单的测试,原来是这样:

    当 kbmMWSimpleClient1.Request时,会检查使用的Transport是否Active,如果没有打开,则Active=True. 调用后,Transport.Active自动为True!当检查到已经为Active,则直接发出请求Request。

    Transport关于联接有三个事件可用:
    Connected:当Transport=True时触发
    DisConnected:当Transport=False时触发
    ConnectionLost:目前测到两种情况,服务器没有开启与开启后关掉服务器,这时,客户端的Transport发出请求时,因找不到服务器,会触发ConnectionLost事件,当关闭掉客户端应用时,还会触发DisConnected事件。

    理解几个事件的触发机制点,对于处理界面很重要。比如当客户在使用的过程中,断网等原因无法正常执行客户端请求时,可以用这几个事件,做出友好的提示及进一步的处理。

    MaxRetries:重新联接次数,默认值为0,即不重新联接。再做一下实验,看看这个属性的作用:
    1.打开Server,让其可以接受用户端的请求
    2.打开Client,向Server发出一次请求,这时,客户端的Transport变成Active状态
    3.把Server关掉,再重新打开:当MaxRetries为0时,客户端无法向Server发出请求,触发ConnectionLost事件;当MaxRetries不为0,则客户端能够正常向Server发出请求并得到返回结果。这个特性真是太棒了!
    4. 当设置为非0时,客户发出一次请求,在无法联接到服务器的情况,按该值尝试联接次数,每一次重新联接服务器,都触发OnReconnect事件,该事件中 的RetriesLeft参数,表明还剩余几次重新联接。可以根据这个值,显示一个重新联接的进度条给用户。当客户端执行了MaxRetries次联接报 务器的动作,都无法联接时,触发ConnectionLost事件。
    总结MaxRetries属性,就是客户端在无法联接服务器的情况下,执行多少次尝试联接服务器。

    客户端在向服务器发出一次请求后,即客户端联接服务器的状态下,把服务器关掉,即断开与客户端的联接,客户端竟没有出错误提示,而是静静的等待,配合MaxRetries属性的使用,对于适应恶劣网络环境,怎一个爽字了得!真是佩服kbmMW!

  • 相关阅读:
    高危预警|RDP漏洞或引发大规模蠕虫爆发,用户可用阿里云免费检测服务自检,建议尽快修复
    高危预警| SQL数据库成主要攻击对象,或引发新一轮大规模勒索
    dp练习(7)—— 最小和
    dp练习(6)——搬运礼物
    dp练习(5)——最长严格上升子序列
    dp练习(4)——过河卒
    dp练习(3)——棋盘问题
    dp练习(2)——老鼠的旅行
    dp练习(1)——马走日字
    埃氏筛法——标记质数
  • 原文地址:https://www.cnblogs.com/xalion/p/2706964.html
Copyright © 2011-2022 走看看