在服务器端再加入代码:
Private Sub tcpServer_ConnectionRequest _
(ByVal requestID As Long)
'检查控件的 State 属性是否为关闭的。
'如果不是,
'在接受新的连接之前先关闭此连接。
If tcpserver.State <> sckClosed Then _
tcpserver.Close
'接受具有 requestID 参数的
'连接。
tcpserver.Accept requestID
End Sub
Private Sub tcpServer_ConnectionRequest _
(ByVal requestID As Long)
'检查控件的 State 属性是否为关闭的。
'如果不是,
'在接受新的连接之前先关闭此连接。
If tcpserver.State <> sckClosed Then _
tcpserver.Close
'接受具有 requestID 参数的
'连接。
tcpserver.Accept requestID
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept requestID
End Sub可问题还是照旧:)
Winsock1.RemoteHost = "127.0.0.1"
Winsock1.RemotePort = 1001
Winsock1.Connect
加入到form_load事件中试试
还是“所需事物或请求的错误协议或连接状态”错误!!!
好使,但是在运行时,利用代码设置就不好使了,为什么呀???
因为我希望 地址(主机名称)和端口在程序运行时动态填加的,该怎么办呀!! 谢谢大家!!
服务器端:
Private Sub Form_Load()
'将 LocalPort 属性设置为一个整数。
'然后调用 Listen 方法。
tcpserver.LocalPort = 1001
tcpserver.Listen
frmclient.Show '显示客户端的窗体。
End Sub
Private Sub tcpServer_Close()
tcpserver.Close
tcpserver.Listen
End Sub
Private Sub tcpServer_ConnectionRequest _
(ByVal requestID As Long)
'检查控件的 State 属性是否为关闭的。
'如果不是,
'在接受新的连接之前先关闭此连接。
If tcpserver.State <> sckClosed Then _
tcpserver.Close
'接受具有 requestID 参数的
'连接。
tcpserver.Accept requestID
End Sub
Private Sub tcpServer_DataArrival _
(ByVal bytesTotal As Long)
'为进入的数据声明一个变量。
'调用 GetData 方法,并将数据赋予名为 txtOutput
'的 TextBox 的 Text 属性。
Dim strData As String
tcpserver.GetData strData
txtoutput.Text = strData
客户端:
Private Sub Command1_Click()
tcpclient.SendData txtsend.Text
End Sub
Private Sub Command2_Click()
tcpclient.Close
cmdconnect.Enabled = True
End Sub
Private Sub Form_Load()
'Winsock 控件的名字为 tcpClient。
'注意:要指定远程主机,可以使用
' IP 地址(例如:"121.111.1.1"),也可以使用
'计算机的“好听的名字”如下所示。
tcpclient.RemoteHost = "zhangsong"
tcpclient.RemotePort = 1001
End Sub
Private Sub cmdConnect_Click()
'调用 Connect 方法,初始化连接。
tcpclient.Connect
End Sub
Private Sub tcpclient_Connect()
If tcpclient.State = sckConnected Then
StatusBar1.Panels(1).Text = "连接"
cmdconnect.Enabled = False
End If
End Sub
Private Sub tcpClient_DataArrival _
(ByVal bytesTotal As Long)
Dim sData As String
tcpclient.GetData sData
txtoutput.Text = sData
End Sub
以上代码我都运行通过。
Private Sub tcpServer_ConnectionRequest _
(ByVal requestID As Long)
'检查控件的 State 属性是否为关闭的。
'如果不是,
'在接受新的连接之前先关闭此连接。
If tcpserver.State <> sckClosed Then _
tcpserver.Close
'接受具有 requestID 参数的
'连接。
tcpserver.Accept requestID
End Sub