创建TCP客户端程序
在工程中添加一个新的窗体(form),并命名为frmClient;
将窗体的标题(caption)改为TCP Client;
添加一个Windsock控件到窗体中,命名为tcpCllient;
添加2个文本框控件到frmClient窗体,分别命名为txtSend和txtOutput;
添加一个按钮控件(CommandButton)到窗体,命名为cmdConnecti;
将按钮控件标题(caption)改为Connect;
在窗体中添加下面代码:
注:确保将远程主机属性(RemoteHost property)改为你的计算机别名。
| Private Sub Form_Load() ' The name of the Winsock control is tcpClient. ' Note: to specify a remote host, you can use ' either the IP address (ex: "121.111.1.1") or ' the computer's "friendly" name, as shown here. tcpClient.RemoteHost = "RemoteComputerName" tcpClient.RemotePort = 1001 End Sub Private Sub cmdConnect_Click() ' Invoke the Connect method to initiate a ' connection. tcpClient.Connect End Sub Private Sub txtSendData_Change() tcpClient.SendData txtSend.Text End Sub Private Sub tcpClient_DataArrival _ (ByVal bytesTotal As Long) Dim strData As String tcpClient.GetData strData txtOutput.Text = strData End Sub |
以上代码就能创建一个简单的客/服应用程序。要试着让两者建立连接,可以运行工程,单击Connect。在任意一个txtSendData文本框中输入文本,同样的文本信息就会出现在另一个窗体的txtOutput文本框中出现。
接受多个连接请求
上面介绍的服务端程序智能接受一个连接请求。但是,通过创建一组控件,并使用同样的控件来接受多个连接请求也是可能的。在这种情况下,你不需要关闭连接,只要创建新的控件实例(通过配置它的索引属性),调用新的实例中的接受方法。
下面的代码中,假定在一个叫sckServer的窗体中有一个Winsock控件,它的索引属性设置为0。这样这个控件就是控件数组的一部分。在声明段中,生命一个模块级变量intMax。在窗体的载入事件中,intMax被设置为0,数组中第一个控件的本地端口属性被设置为1001。
监听方法在控件中被调用,它被作为“监听控件”。每个连接请求到来时,代码会测试看它的索引(Index)是否为0(监听控件的值),如果是0,监听控件中intMax值增1,并用这个值创建新的控件实例。新的控件实例被用来接受连接请求。
| Private intMax As Long Private Sub Form_Load() intMax = 0 sckServer(0).LocalPort = 1001 sckServer(0).Listen End Sub Private Sub sckServer_ConnectionRequest _ (Index As Integer, ByVal requestID As Long) If Index = 0 Then intMax = intMax + 1 Load sckServer(intMax) sckServer(intMax).LocalPort = 0 sckServer(intMax).Accept requestID Load txtData(intMax) End If End Sub |
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询



