请高手解决下这个问题,实时错误“10047”地址族不支持

Rookie-c 2012-06-07 05:57:12
自己用VB做了个聊天室,网上的聊天室代码都是客户端加服务端的,我把两个端都结合成一个程序,用了两个winsock,服务端是TCP协议的,客户端是UDP协议的,用客户端向服务端发送信息的时候总是提示地址簇不支持,而且客户端好像也发不了信息到服务端,搞了一天还不行,求助,希望各位有时间帮忙一下
具体代码如下:
'Option Explicit
Private Sub cmdFs_Click()
If XZ = 1 Then '判断是选择服务器还是客服器
If txtFs.Text = "" Then '检查看有没有有没有输入信息
MsgBox "请输入信息......", vbCritical, "提示"
Else
WskFW.SendData txtFs.Text '发送信息
txtJs.Text = txtJs.Text + vbCrLf + CStr(Date) + Chr(32) + CStr(Time$()) + vbCrLf & TxtNc & ":" & txtFs.Text
txtFs.Text = ""
End If
Else
If txtFs.Text = "" Then
MsgBox "请输入信息......", vbCritical, "提示"
Else
WskKF.RemoteHost = WskKF.RemoteHostIP '重新设置远程IP
'WskKF.RemotePort = frmJm.txtYDK.Text '重新设置远程端口
' WskKF.Connect
WskKF.SendData txtFs.Text
txtJs.Text = txtJs.Text + vbCrLf + CStr(Date) + Chr(32) + CStr(Time$()) + vbCrLf & TxtNc & ":" & txtFs.Text
txtFs.Text = ""
End If
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If WskFW.State <> sckClosed Then
WskFW.Close
End If
If WskKF.State <> sckClosed Then
WskKF.Close
End If
End Sub

Private Sub mnuFWD_Click()
XZ = 1 '选择的是服务器
frmJm.Show '连接界面显示
frmJm.Caption = "服务端连接"
frmJm.Label1.Caption = "服务端IP"
frmJm.Label2.Visible = False
frmJm.txtYDK.Visible = False
End Sub

Private Sub mnuKHD_Click()
XZ = 2 '选择的是客服端
frmJm.Show '连接界面显示
frmJm.Caption = "客户端连接"
frmJm.Label1.Caption = "服务端IP"
End Sub

Private Sub mnuTC_Click()
If WskFW.State <> sckClosed Then '判断服务器有没有关闭,要是没有就直接关闭
WskFW.Close
End If
If WskKF.State <> sckClosed Then '判断客户端有没有关闭,要是没有就直接关闭
WskKF.Close
End If
End
End Sub

Private Sub Timer1_Timer()
Select Case WskFW.State '判断服务器的连接状态
Case 0
Label1.Caption = "关闭"
Case 1
Label1.Caption = "打开"
Case 2
Label1.Caption = "侦听"
Case 3
Label1.Caption = "连接状态"
Case 5
Label1.Caption = "以识别主机"
Case 6
Label1.Caption = "正在连接 "
Case 7
Label1.Caption = "已连接"
Case 8
Label1.Caption = "客户端正在关闭"
Case 9
Label1.Caption = "错误"
End Select
End Sub
Private Sub Timer2_Timer()
Select Case WskKF.State '判断客服端的连接状态
Case 0
Label1.Caption = "关闭"
Case 1
Label1.Caption = "打开"
Case 2
Label1.Caption = "侦听"
Case 3
Label1.Caption = "连接状态"
Case 5
Label1.Caption = "以识别主机"
Case 6
Label1.Caption = "正在连接 "
Case 7
Label1.Caption = "已连接"
Case 8
Label1.Caption = "客户端正在关闭"
Case 9
Label1.Caption = "错误"
End Select
End Sub

Private Sub WskFW_ConnectionRequest(ByVal requestID As Long)
If WskFW.State <> sckClosed Then '判断服务器是否关闭,如果没有关闭则关闭,然后接受客服端连接
WskFW.Close
WskFW.Accept requestID
End If
End Sub

Private Sub WskFW_DataArrival(ByVal bytesTotal As Long)
Dim Js As String
WskFW.GetData Js, vbString '接受客户端的信息
txtJs.Text = txtJs.Text + vbCrLf + CStr(Date) + Chr(32) + CStr(Time$()) + vbCrLf & "对方:" & Js
End Sub
Private Sub WskKF_DataArrival(ByVal bytesTotal As Long)
WskKF.RemoteHost = WskKF.RemoteHostIP
Dim Js As String
WskKF.GetData Js, vbString '接收服务端的信息
txtJs.Text = txtJs.Text + vbCrLf + CStr(Date) + Chr(32) + CStr(Time$()) + vbCrLf & "对方:" & Js
End Sub
----------------------------------------------------------------
这是主界面的代码 还有个连接框的
------------------------------------------------------------------
Private Sub cmdLj_Click()
If XZ = 1 Then
If txtIP.Text = "" Then
MsgBox "请输入服务IP地址......", vbCritical, "提示"
ElseIf txtBDK.Text = "" Then
MsgBox "请输入本地端口......", vbCritical, "提示"
Else
frmZJM.WskFW.LocalPort = txtBDK.Text
frmZJM.WskFW.Listen
frmZJM.Timer1.Enabled = True
Me.Hide
End If
Else
If txtIP.Text = "" Then
MsgBox "请输入服务IP地址......", vbCritical, "提示"
ElseIf txtYDK.Text = "" Then
MsgBox "请输入服务端口......", vbCritical, "提示"
ElseIf txtBDK.Text = "" Then
MsgBox "请输入本地端口......", vbCritical, "提示"
Else
frmZJM.WskKF.RemoteHost = txtIP.Text
frmZJM.WskKF.RemotePort = txtYDK.Text
frmZJM.WskKF.LocalPort = txtBDK.Text
frmZJM.Timer2.Enabled = True
frmZJM.WskKF.Connect
Me.Hide
End If
End If
End Sub

Private Sub Form_Load()
txtIP.Text = frmZJM.WskFW.LocalIP
txtYDK.Text = 2110
txtBDK.Text = 2110
End Sub

--------------------------------------------------
连接框的就这样 希望能帮助一下我
...全文
385 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rookie-c 2013-09-11
  • 打赏
  • 举报
回复
汗,已解决!
Rookie-c 2012-06-19
  • 打赏
  • 举报
回复
汗,什么东东????
zyg0 2012-06-09
  • 打赏
  • 举报
回复
命令行 运行 netsh winsock reset

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧