以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]NetworkAddressChanged  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189737)

--  作者:xubing051018
--  发布时间:2023/12/22 9:48:00
--  [求助]NetworkAddressChanged

求教一段代码

在NetworkAddressChanged事件中如何用代码控制

当指定的服务地址不通的时候,禁止任何程序操作,只能等待,必须等网络通后才能继续程序操作?


--  作者:有点蓝
--  发布时间:2023/12/22 10:35:00
--  
比如

If TryConnectHost("192.168.152.102") = False Then    \'如果服务器的地址不可以解析
    If Network.Ping("192.168.152.102") = False Then    \'如果服务器不可以连接    
        Dim Result As DialogResult
        Result = MessageBox.Show("与服务器的链接已断开! 是否退出系统? 点击【确定】,关闭正在进行的工作并退出系统; 点击【取消】,则继续等待服务器恢复链接.", "运行错误", MessageBoxButtons.OKCancel, MessageBoxIcon.Error)
        If Result = DialogResult.OK Then
            MessageBox.Show("关闭项目退出","提示")
            Syscmd.Project.Exit() 
            Return
        Else
            forms("某模式窗口").open
        End If
    End If
End If

--  作者:xubing051018
--  发布时间:2023/12/27 11:10:00
--  
请教,NetworkAddressChanged事件是不是只有在客户端本地电脑IP地址发生变化时才触发?

如果是外部网络或服务端程序问题(比如服务程序崩溃异常退出)导致的服务连接不上,客户端应该如何及时得检测到并且控制此时不可以进行任何操作,直至与服务联通?

--  作者:有点蓝
--  发布时间:2023/12/27 11:16:00
--  
是滴,NetworkAddressChanged事件只有在客户端本地电脑IP地址发生变化时才触发

考虑定时ping一下服务器的IP,如果不通就提示

--  作者:有点蓝
--  发布时间:2023/12/27 11:18:00
--  
如果使用OpenQQ就比较好办,服务器断开后,客户端的Disconnected事件会触发:http://www.foxtable.com/webhelp/topics/2996.htm