一、所用控件
议连接到远程计算机上并与之交换
二、编写客户端程序
首先来建客户端程序myclient。在myclient程序中建立一个窗体,加载Winsock控件,称为tcpclient,表示使用的是 TCP协议,再加入两个文本框(text1和text2),用来输入服务器的IP地址和端口号,然后建立一个按钮(cd1),用来建立连接,按下之后就可以对连接进行初始化了,代码如下:
privatesubcd1_click()
tcpclient.romotehost=text1.text
tcpclient.romoteport=val(text2.text)’端口号,缺省为1001
tcpclient.connect’调用connect方法,与指定IP地址的计算机进行连接
cd1.enabled=false
endsub
连接之后就是如何处理所收到的数据的问题了。客户端和服务器端建立连接后,如果有任何一端接收到新的数据,就会触发该端winsock控件的 dataarrival事件,在响应这个事件时,可以使用getdata方法获得发送来的数据。比如可以在tcpclient的dataarrival事件中编写代码如下:
privatesubtcpclient_dataarrival(byvalbytestotalaslong)
dimxasstring
tcpclient.getdatax’使用getdata获得发送来的数据
.......
Endsub
后面的省略部分表示对接收到的数据进行的具体处理,读者可以根据实际情况编写。
三、编写服务器端程序
先建立一个窗体,加载Winsock控件,名称为tcpserver。另外在窗体上加入一个文本框text1用来显示客户机的IP地址和客户机发送过来的数据信息。
当客户端程序运行时,在客户端程序按下连接按钮后,客户端向服务器端程序请求连接,这时服务器端的connectionrequest事件被触发,所以服务器端程序要解决连接问题,可以使用connectionrequest事件完成此功能。代码如下:
’在窗体的load事件中对tcpserver控件进行初始化
privatesubform_load()
tcpserver.localport=1001
tcpserver.listen’把服务器置于监听检测状态
endsub
’服务器端接收到客户端的连接请求,首先检查当前状态是否处于连接关闭状态
Privatesubtcpclient_connectionrequest(ByvalrequestIDaslong)
Iftcpserver.state<>sckclosedthen’检查控件的state属性是否为关闭
Tcpserver.close’
Tcpserver.acceptrequestID’
Endif
Endsub
现在我们在服务器端程序tcpserver的dataarrival事件中添加以下代码,以便让服务器端程序可以接收客户机端的指令,并运行相应的程序。
四、测试远程控制程序
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交