非常奇怪的问题,服务器端发送的字符串,客户端怎么不能全接受呀,winsock控件采用的是tcp协议,小弟急用,谢谢!
服务器端
Private Sub Form_Load()
Winsockserver.LocalPort = 1001
Winsockserver.Listen
End Sub
Private Sub Winsockserver_Close()
Winsockserver.Close
End
End Sub
Private Sub Winsockserver_ConnectionRequest(ByVal requestID As Long)
If Winsockserver.State <> sckClosed Then Winsockserver.Close
Winsockserver.Accept requestID
End Sub
Private Sub Winsockserver_DataArrival(ByVal bytesTotal As Long)
Dim tmpstr As String
Winsockserver.GetData tmpstr
textget.Text = tmpstr
End Sub
Private Sub Command2_Click()
dim str1 as string
str1="456adaddfad"
For m = 1 To 5
Winsockserver.SendData str1
DoEvents
Next m
End Sub
客户端
Public tmpstr As String
Private Sub Command2_Click()
Winsockclient.Connect
End Sub
Private Sub Form_Load()
Winsockclient.RemotePort = 1001
Winsockclient.RemoteHost = "zwd"
End Sub
Private Sub Text1_Change()
Winsockclient.RemoteHost = Text1.Text
End Sub
Private Sub textsend_Change()
Winsockclient.SendData Textsend.Text
End Sub
Private Sub Winsockclient_Close()
Winsockclient.Close
End
End Sub
Private Sub winsockclient_Connect()
Textsend.Visible = True
textget.Visible = True
End Sub
Private Sub winsockclient_DataArrival(ByVal bytesTotal As Long)
Winsockclient.GetData tmpstr
tmpstr = StrConv(tmpstr, vbUnicode)
textget.Text =textget.Text & "receive" & tmpstr & “; ”
End Sub
客户端和服务器端连接后,单击 Command2 后,服务器端循环发送 456456adaddfad 字符串到客户端,我希望客户端每次接受这个字符串. 得到 456456adaddfad; 456456adaddfad; 456456adaddfad; 456456adaddfad; 456456adaddfad;结果。但实际上得到了 456456adaddfad; 4; 4; 4; 4; 客户端只有第一次完整的接收到了这个字符串,以后只接收到这个串的第一个字符,这是怎么回事呀,怎么解决呀??我的 winsock控件采用的是tcp协议,小弟急用,谢谢!
服务器端
Private Sub Form_Load()
Winsockserver.LocalPort = 1001
Winsockserver.Listen
End Sub
Private Sub Winsockserver_Close()
Winsockserver.Close
End
End Sub
Private Sub Winsockserver_ConnectionRequest(ByVal requestID As Long)
If Winsockserver.State <> sckClosed Then Winsockserver.Close
Winsockserver.Accept requestID
End Sub
Private Sub Winsockserver_DataArrival(ByVal bytesTotal As Long)
Dim tmpstr As String
Winsockserver.GetData tmpstr
textget.Text = tmpstr
End Sub
Private Sub Command2_Click()
dim str1 as string
str1="456adaddfad"
For m = 1 To 5
Winsockserver.SendData str1
DoEvents
Next m
End Sub
客户端
Public tmpstr As String
Private Sub Command2_Click()
Winsockclient.Connect
End Sub
Private Sub Form_Load()
Winsockclient.RemotePort = 1001
Winsockclient.RemoteHost = "zwd"
End Sub
Private Sub Text1_Change()
Winsockclient.RemoteHost = Text1.Text
End Sub
Private Sub textsend_Change()
Winsockclient.SendData Textsend.Text
End Sub
Private Sub Winsockclient_Close()
Winsockclient.Close
End
End Sub
Private Sub winsockclient_Connect()
Textsend.Visible = True
textget.Visible = True
End Sub
Private Sub winsockclient_DataArrival(ByVal bytesTotal As Long)
Winsockclient.GetData tmpstr
tmpstr = StrConv(tmpstr, vbUnicode)
textget.Text =textget.Text & "receive" & tmpstr & “; ”
End Sub
客户端和服务器端连接后,单击 Command2 后,服务器端循环发送 456456adaddfad 字符串到客户端,我希望客户端每次接受这个字符串. 得到 456456adaddfad; 456456adaddfad; 456456adaddfad; 456456adaddfad; 456456adaddfad;结果。但实际上得到了 456456adaddfad; 4; 4; 4; 4; 客户端只有第一次完整的接收到了这个字符串,以后只接收到这个串的第一个字符,这是怎么回事呀,怎么解决呀??我的 winsock控件采用的是tcp协议,小弟急用,谢谢!
Winsockclient.SendData Textsend.Text
doevents
End Sub