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!

  • 相关阅读:
    Poi之Word文档结构介绍
    Cannot create PoolableConnectionFactory (ORA-28040: No matching authentication protocol
    ZipFile和ZipInputSteam解压zip文件
    Java读取其他jar包里的配置文件
    安装oracle后不能连接问题
    JDBC oracle 错误总结
    vimplugin破解
    SQL之left join、right join、inner join
    ELK之安装searchguard后默认管理员用户admin修改
    CentOS使用systemctl daemon-reload报错Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: Timeout was reached (g-io-error-quark, 24)解决办法
  • 原文地址:https://www.cnblogs.com/xalion/p/2706964.html
Copyright © 2011-2022 走看看