读书人

关于“地址族不支持”的有关问题异常

发布时间: 2012-01-14 20:02:35 作者: rapoo

关于“地址族不支持”的问题,错误代码10047
我用VB的WINSOCK控件编写了一个UDP的通信,这是其中一个,另一个代码差不多。
Dim ip
Private Sub Form_Click()
ip = InputBox("输入对方的IP地址:", "输入IP", "127.0.0.1")
End Sub

Private Sub Form_Load()
With udpPeerA
.RemoteHost = ip '远程计算机名
.RemotePort = 1010 '要连接的端口
.LocalPort = 1011 '该Winsock控制将要使用的本地端口号,便于其它端与该Winsock通讯
.Bind 1011 '将该Winsock控制绑定到该本地端口
End With
End Sub

Private Sub TxtSend_Change()
udpPeerA.SendData TxtSend.Text '发送数据
End Sub

Private Sub udpPeerA_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
udpPeerA.GetData strData, vbString
TxtOutput.Text = strData
End Sub
但是在通信时,却显示地址族不支持错误,代码10047,我查了MSDN,好像也没有这个错误说明,我当时用的ipconfig命令获取的IP地址,并且通信的时候没有关闭防火墙,是不是这个原因我也不知道,这是怎么回事?请高手赐教。



[解决办法]
很简单,form_load事件是先执行的,所以form_click后输入的ip并没有赋值给udpPeerA,所以udpPeerA的remotehost为空,发数据时自然会出错。改成:
Private Sub Form_Click()
Dim ip
ip = InputBox("输入对方的IP地址:", "输入IP", "127.0.0.1")

With udpPeerA
.RemoteHost = ip '远程计算机名
.RemotePort = 1010 '要连接的端口
.LocalPort = 1011 '该Winsock控制将要使用的本地端口号,便于其它端与该Winsock通讯
.Bind 1011 '将该Winsock控制绑定到该本地端口
End With
End Sub

读书人网 >VB

热点推荐