如何在VB编程环境下实现两台PC机的TCP/IP通讯

2025-05-09 20:23:30

1、在电脑上的VB环境下新建工程1,创建新的standard EXE工程,窗体1名称:frmserver,窗体的标题改为:“TCP服务器”,在此窗口中放置一个winsock控件(名称为tdpserver),当做服务器,添加两个Textbox控件,分别命名为:txtsenddata与txtoutput

2、编写程序代码:(发送字符串)private sub Form_Load()Tcpserver.localport=1001 '设置侦听端口Tcpserver.Listen '侦听End subPrivate sub tcpserver_connectionRequest(Byval requestID as Long)If tcoserver.state<>sckclosed thentcpserver.closetcpserver Accept requestIDPrivate sub txtsenddata_change()Tcpserver.senddata txtsenddata.textEnd subPrivate sub tcpserver_DataArrival(Byval bytesTotal as Long)Dim strData as stringTCPserver.GetData strDataEnd subPrivate sub Timer1_Timer()Label3.caption=tcpserver.stateEnd sub

如何在VB编程环境下实现两台PC机的TCP/IP通讯

3、TCP客户端:在另一台PC机上新建工程,添加窗口,命名:frmclient 标题:Tcpclient 添加winsock控件,命名:tcpclient添加两个textbox控件,第一个命名为txtsend,第二个命名为:txtoutput,在窗口上放一个commandButton控件,命名为cmdconnect,将CommandButton控件的标题改为connect。

4、编写程序:Private sub Form_Load()Tcpclient.RemoteHost=”127.0.0.1”(192.168.1.100)服务器的IP地址或是本地地址Tcpclient.RemotePort=1001 ‘侦听端口应该相同End subPrivate sub cmdconnect_click()Tcpclient.connectEnd subPrivate sub txtsenddata_change()Tcpclient.senddata txtsend.textEnd subPrivate sub tcpclient_DataArrival(Byval bytesTotal as Long)Dim strdata as stringTcpclient.GetData strdataTxtoutput.Text=strdataEnd subPrivate sub Timer1_Timer()Label3.Caption=tcpclient.stateEnd sub

如何在VB编程环境下实现两台PC机的TCP/IP通讯

5、Winsock控件state的属性与描述常数(值) 描述Sckclosed 0 缺省的,关闭Sckopen 1 打开SckListening 2 侦听Sckconnectionpending 3 连接挂起SckResolvingHost 4 识别主机SckHostResolved 5 已识别主机SckConnecting 6 正在连接SckConnected 7 已经连接SckClosing 8 同级人员正在关闭连接Sckerror 9 错误

6、将服务器与客户机发送与接收数据部分的程序进行修改,实现字节数组的发送与接收,如,客户机发送定长字节数组。服务器a1(0 to 7)将元素放在七个TEXT中代码如下:Private sub command1_click()Dim a1(0 to 7) as bytea1(0)=text1(0).texta1(1)=text1(1).texta1(2)=text1(2).texta1(3)=text1(3).texta1(4)=text1(4).texta1(5)=text1(5).texta1(6)=text1(6).texta1(7)=text1(7).texttcpserver.senddata a1end sub

7、对应的客户端代码Private sub tcpclient_DataArrival(Byval bytesTotal as Long)Dim b() as byteTcpclient.getdata bText1(0).text=b(0)Text1(1).text=b(1)Text1(2).text=b(2)Text1(3).text=b(3)Text1(4).text=b(4)Text1(5).text=b(5)Text1(6).text=b(6)Text1(7).text=b(7)If Text1 (0).text=11 thenDim c(0 to 7) as Bytec(0)=text2(0).textc(1)=text2(1).textc(2)=text2(2).textc(3)=text2(3).textc(4)=text2(4).textc(5)=text2(5).textc(6)=text2(6).textc(7)=text2(7).texttcpclient.senddata cEnd sub对应的服务器接收端的代码如下:Private sub tcpserver_DataArrival(Byval bytesTotal as Long)Dim bt() as byteText3(0).text=bt(0)Text3(1).text=bt(1)Text3(2).text=bt(2)Text3(3).text=bt(3)Text3(4).text=bt(4)Text3(5).text=bt(5)Text3(6).text=bt(6)Text3(7).text=bt(7)End sub

8、运行的过程,将网络连接好后,点击服务器程序上的发送,如果发送的第一个字节为11的话,在客户机显示服务器发送过来的数据的同时,服务器接收到客户机发送过来的数据并显示出来。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢