读书人

winsock断开后再连接连接不上?为什

发布时间: 2012-02-21 16:26:23 作者: rapoo

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

读书人网 >VB

热点推荐