当绑定时,所有的网卡都出故障怎么处理
编号:QA003374
建立日期: 2000年9月28日 最后修改日期:2000年9月28日
所属类别:
njzhang.zyk:
操作系统:Win2000
编程工具:VB6.0
问题:本人在VB中用winsock编程进行前台通讯,并使用多块网卡以便切换。当其中只要有一块网卡可用时,程序能在绑定出错时根据On Error跳到NextFor标志处,但是当所有的网卡都出故障时,用bind绑定最后一块时系统出错,提示“本地机器没有可用的地址”,Winsock错误号为10049;On Error语句不再有效,也不触发Winsock控件的Error事件,不知怎样才能在程序中先于系统捕捉到错误进行处理,而不是出现系统提示的错误信息。望赐教!
下面是实现绑定的源代码:
IsOneWorking=False
For i = 0 To UBound(IPAddress)
Winsock_bc.Protocol = sckUDPProtocol
Winsock_bc.RemotePort = 4000 Winsock_bc.LocalPort = 4000
Winsock_bc.RemoteHost = RemoteHost(i)
On Error GoTo NextFor
Winsock_bc.Bind nLocalPort, IPAddress(i)
IsOneWorking = True
Exit For
NextFor:
Winsock_bc.Close
Next
If Not IsOneWorking Then
MsgBox "当前网络中没有一块网卡可用!", vbOKOnly, "网络连接错误"
End If
其中,Winsock_bc为Winsock控件名,RemoteHost(i)、IPAddress(i)分别为第i块网卡的广播地址及IP。如能解答不胜感激,谢谢!另外,如何编程才能获得本地机器的多块网卡的IP地址?
回答:
程序修改如下:
Err.Clear
On Error Resume Next
For i = 0 To UBound(IPAddress)
Winsock_bc.Protocol = sckUDPProtocol
Winsock_bc.RemotePort = 4000
Winsock_bc.LocalPort = 4000
Winsock_bc.RemoteHost = RemoteHost(i)
Winsock_bc.Bind nLocalPortIPAddress(i)
If Err.Number = 0 Then
IsOneWorking = True
Exit For
Else
Winsock_bc.Close
Err.Clear
End If
Next
If NOT IsOneWorking Then
MsgBox "当前网络中没有一块网卡可用 !", vbOKOnly, "网 络 连 接 错 误 "
End If
此问题由jsfnman回答。
| |
|
|
| |
|
|