如何判断网线插上啊?急急急!
最近做一个网卡测试程序,使用过socket去连接后判断网线断开,但有一个10~30秒的缓存期,无法立即判断网线拨除.
请问各位有什么好的思路,方案,代码.
[解决办法]
从Shell消息入手
[解决办法]
jf
[解决办法]
恐怕很难立即判断,或多或少总会有一点延迟的。
[解决办法]
使用 System.Net.NetworkInformation.NetworkChange类中的事件,检测NetworkInterface.OperationalStatus状态:
- VB.NET code
Imports SystemImports System.NetImports System.Net.NetworkInformationPublic Class NetworkingExample Public Shared Sub Main() AddHandler NetworkChange.NetworkAddressChanged, AddressOf AddressChangedCallback Console.WriteLine("Listening for address changes. Press any key to exit.") Console.ReadLine() End Sub 'Main Private Shared Sub AddressChangedCallback(ByVal sender As Object, ByVal e As EventArgs) Dim adapters As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces() Dim n As NetworkInterface For Each n In adapters Console.WriteLine(" {0} is {1}", n.Name, n.OperationalStatus) Next n End SubEnd Class
[解决办法]
给别的机器发心跳包,如果超过规定时间(譬如10S)没有通讯上就算做拔出。呵呵。
[解决办法]
来一个简单点:
Try
If My.Computer.Network.Ping("192.168.0.1") Then
MsgBox("连接很好,一切都通!")
End If
Catch ex As Exception
MsgBox(“网线未插入,或ADSL关闭”)
End Try
[解决办法]
我觉得可以在要断开网络时同时发送条特殊的指令,但对方收到这条特殊的指令时就知道对方断开了网络
[解决办法]
lz还发了两个帖子啊,看来是很急,帮你再顶一下,看有没更好的答案
[解决办法]
回贴 帮顶 当收藏
好象Socket一直都有这个问题,直接拔网线的话不能反应出来网络断线了
参考5楼的办法试试吧
或者再等等看有没有高手发点意见........