一个关于vb winsock控件的问题,大家看看

来源:百度知道 编辑:UC知道 时间:2024/09/21 17:25:12
我用vb的winsock控件编了一个东东,服务器是 form1,客户端是form2,代码如下form1的代码
Private Sub Form_Load()
Show

Winsock1.LocalPort = 2000
Winsock1.Listen
Form2.Show
End Sub

Private Sub Text1_Change()
On ERRO GoTo err
Winsock1.SendData Text1.Text
err:
If err.Number = 4006 Then
MsgBox "网络错误"
End If
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then
Winsock1.Close
End If
Winsock1.Accept requestID

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim str As String
Winsock1.GetData str
Text2.Text = str

End Sub

form2代码
Private Sub Form_Load()
Winsock.RemoteHost = "192.168.1.2"
Winsock.RemotePort = 20002
Winsock.Connect "192.168.1.2", "2000"
End Sub

Private Sub Text1_Change()

Winsock.

汗..你看看你这代码
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then
Winsock1.Close
End If
Winsock1.Accept requestID
End Sub

人家Form2的winsock刚发一个请求过来,你就给人家把连接关闭了,还怎么连啊..
建议你Form1上用一个winsock来等待连接,再弄个winsock或者用winsock数组来处理连接请求

他说连接状态错误你就先检查一下连接情况,还有如果是点对点的程序 你端口设置了么,在自己电脑上运行要注意下 因为客户端和服务端不能在一台电脑上,