趣百科

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

编辑:Simone 2025-03-02 01:56:25 586 阅读

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

如何利用两台PC机在VB编程环境下实现TCP/IP通信,下面简要介绍下步骤。

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

编写程序代码:(发送字符串)

private sub Form_Load()

Tcpserver.localport=1001 '设置侦听端口

Tcpserver.Listen '侦听

End sub

Private sub tcpserver_connectionRequest(Byval requestID as Long)

If tcoserver.state<>sckclosed then

tcpserver.close

tcpserver Accept requestID

Private sub txtsenddata_change()

Tcpserver.senddata txtsenddata.text

End sub

Private sub tcpserver_DataArrival(Byval bytesTotal as Long)

Dim strData as string

TCPserver.GetData strData

End sub

Private sub Timer1_Timer()

Label3.caption=tcpserver.state

End sub

TCP客户端:在另一台PC机上新建工程,添加窗口,命名:frmclient 标题:Tcpclient 添加winsock控件,命名:tcpclient

添加两个textbox控件,第一个命名为txtsend,第二个命名为:txtoutput,在窗口上放一个commandButton控件,命名为cmdconnect,将CommandButton控件的标题改为connect。

编写程序:

Private sub Form_Load()

Tcpclient.RemoteHost=”127.0.0.1”(192.168.1.100)服务器的IP地址或是本地地址

Tcpclient.RemotePort=1001 ‘侦听端口应该相同

End sub

Private sub cmdconnect_click()

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

Private sub Timer1_Timer()

Label3.Caption=tcpclient.state

End sub

Winsock控件state的属性与描述

常数(值) 描述

Sckclosed 0 缺省的,关闭

Sckopen 1 打开

SckListening 2 侦听

Sckconnectionpending 3 连接挂起

SckResolvingHost 4 识别主机

SckHostResolved 5 已识别主机

SckConnecting 6 正在连接

SckConnected 7 已经连接

SckClosing 8 同级人员正在关闭连接

Sckerror 9 错误

将服务器与客户机发送与接收数据部分的程序进行修改,实现字节数组的发送与接收,如,客户机发送定长字节数组。

服务器a1(0 to 7)

将元素放在七个TEXT中

代码如下:

Private sub command1_click()

Dim a1(0 to 7) as byte

a1(0)=text1(0).text

a1(1)=text1(1).text

a1(2)=text1(2).text

a1(3)=text1(3).text

a1(4)=text1(4).text

a1(5)=text1(5).texta1(6)=text1(6).text

a1(7)=text1(7).text

tcpserver.senddata a1

end sub

对应的客户端代码

Private sub tcpclient_DataArrival(Byval bytesTotal as Long)

Dim b() as byte

Tcpclient.getdata b

Text1(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 then

Dim c(0 to 7) as Byte

c(0)=text2(0).text

c(1)=text2(1).text

c(2)=text2(2).text

c(3)=text2(3).text

c(4)=text2(4).text

c(5)=text2(5).text

c(6)=text2(6).text

c(7)=text2(7).text

tcpclient.senddata c

End sub

对应的服务器接收端的代码如下:

Private sub tcpserver_DataArrival(Byval bytesTotal as Long)

Dim bt() as byte

Text3(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

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

版权声明:本站【趣百科】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.qubaik.com/answer/146772.html

相关推荐