winsock断开后再连接,连接不上?为什么?大家帮忙!多谢
winsock断开后再连接,连接不上?为什么?大家帮忙!急急急急!谢谢
服务器端:
Private Sub Form_Load()
tcpserver.LocalPort = 33333
tcpserver.Listen
End Sub
Private Sub tcpserver_ConnectionRequest(ByVal requestID As Long)
If tcpserver.State <> sckClosed Then tcpserver.Close
tcpserver.Accept requestID
End Sub
Private Sub tcpserver_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim strdata As String
tcpserver.GetData strdata, vbString
If strdata = "close " Then
tcpserver.Close
Else
Text5.Text = strdata
End If
End Sub
客户端
Private Sub Form_Load()
tcpclient.RemoteHost = "127.0.0.1 "
tcpclient.RemotePort = 33333
'tcpclient.Connect
End Sub
Private Sub Form_Terminate()
tcpclient.Close
End Sub
Private Sub login_Click()
tcpclient.Connect
login.Enabled = False
End Sub
Private Sub logout_Click()
tcpclient.SendData "close "
tcpclient.Close
login.Enabled = True
End Sub
Private Sub sinfo_Click()
tcpclient.SendData sno.Text
End Sub
这个客户端点击login按钮,完成与服务器的连接,然后再点击sinfo按钮,将sno.text的内容发送给服务器,服务器接受到数据后,显示再text5文本框内,
客户端的logout按钮按下后断开连接。
现在出现的问题是点击login,然后点击sinfo,数据传到服务器,服务器可以收到,但是点击logout后断开连接,然后再次点击login,然后点击sinfo发送数据就会出错,说是tcpclient.SendData sno.Text 错误,为什么第一可以,断开第二次就发不过去呢?大家帮忙啊
------解决方案--------------------
我是这么做的,你试验一下:
Private Sub tcpserver_Close() '当断开时,再次继续监听后续连接
tcpserver.Close
tcpserver.LocalPort = 33333
tcpserver.Listen
End Sub
服务器端:
Private Sub Form_Load()
tcpserver.LocalPort = 33333
tcpserver.Listen
End Sub
Private Sub tcpserver_ConnectionRequest(ByVal requestID As Long)
If tcpserver.State <> sckClosed Then tcpserver.Close
tcpserver.Accept requestID
End Sub
Private Sub tcpserver_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim strdata As String
tcpserver.GetData strdata, vbString
If strdata = "close " Then
tcpserver.Close
Else
Text5.Text = strdata
End If
End Sub
客户端
Private Sub Form_Load()
tcpclient.RemoteHost = "127.0.0.1 "
tcpclient.RemotePort = 33333
'tcpclient.Connect
End Sub
Private Sub Form_Terminate()
tcpclient.Close
End Sub
Private Sub login_Click()
tcpclient.Connect
login.Enabled = False
End Sub
Private Sub logout_Click()
tcpclient.SendData "close "
tcpclient.Close
login.Enabled = True
End Sub
Private Sub sinfo_Click()
tcpclient.SendData sno.Text
End Sub
这个客户端点击login按钮,完成与服务器的连接,然后再点击sinfo按钮,将sno.text的内容发送给服务器,服务器接受到数据后,显示再text5文本框内,
客户端的logout按钮按下后断开连接。
现在出现的问题是点击login,然后点击sinfo,数据传到服务器,服务器可以收到,但是点击logout后断开连接,然后再次点击login,然后点击sinfo发送数据就会出错,说是tcpclient.SendData sno.Text 错误,为什么第一可以,断开第二次就发不过去呢?大家帮忙啊
------解决方案--------------------
我是这么做的,你试验一下:
Private Sub tcpserver_Close() '当断开时,再次继续监听后续连接
tcpserver.Close
tcpserver.LocalPort = 33333
tcpserver.Listen
End Sub