可以用动态数据交换(Dynamic Data Exchange,DDE)实现进程之间的通信。
发送端:
添加Command1,Text1控件,Text1的内容用于发送。
代码如下:
Private Sub Command1_Click()Dim t As Long
Text1.LinkMode = 0
Text1.LinkTopic = "Child|FrmChild" '注意此处一定与接收的程序名称和连接的标题相同否则连接不成功。
Text1.LinkMode = 2
Text1.LinkExecute Text1.Text
t = Text1.LinkTimeout
Text1.LinkTimeout = 1
Text1.LinkMode = 0
Text1.LinkTimeout = t
End Sub
接收端:
添加Text1控件,Text1的内容用于接收。设置工程名称为Child(与发送的程序名对应),设置窗体的LinkMode属性为1,LinkTopic为FrmChild(对应上面发送的标题)。
Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)Text1 = CmdStr
Cancel = 0
End Sub
编译后,先运行接收端,然后运行发送端,输入内容,发送即可成功。
Winsock控件建立在TCP、UDP的协议基础上,以完成计算机网络间的通信。下面将详细的介绍具体的程序创建过程,以便使大家更好的理解程序的源代码。
服务器端程序的运行过程是:
(1)服务器端要设置好侦听端口即LocalPort属性,作为侦听端口的值必须是一个整数(一定要是其它TCP/IP应用程序没有用过的值,并且不能与系统缺省端口冲突)。
(2)用Listen方法进入侦听状态,等待客户机的连接请求。
(3)当客户机发出连接请求时,使服务器产生一个ConnectionRequest事件,且该事件得到一个参数equestID。
(4)服务器程序用Accept方法接受客户机requestID请求。这样,服务器程序便可以用SendData方法来发送数据了。但是,Accept方法必须用上一个步得到的requestID作为其参数。
(5)当服务器程序接收到数据时,便会产生一个DataArrial事件,参数BytesTotal包含接收到的数据字节数。在该事件中,可以用GetData方法接收数据。
(6)如果接收到Close事件,则用Close方法关闭TCP/IP连接。
客户机的程序的运行过程是:
(1)在客户程序中设置Remmotehost属性,以便指定运行服务器程序的主机名,该字符串可以在服务器“ 控制面板 网络 标识 计算机”中查到。
(2)设置RemotePort属性,以便指定服务器程序的侦听端口(其设置方法与服务器端类似)。
(3)使用Connect方法,向服务器提出连接请求。
(4)当服务器程序接受到客户机程序的请求后,客户机程序产生Connect事件,就可以用SendData方法发送数据了。
(5)当客户机程序接收到数据时,便会产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。类似的在该事件中也可以用GetData方法接收数据。
(6)如果客户机程序接收到Close,则用Close方法关闭连接。
使用说明:
本程序实现了两台计算机之间的自由通信。先将编译好的程序分别放入两台已联网的计算机的 开始 启动 中,这样每次启动时,程序将会自动运行,程序启动时将以最小化的形式出现在任务栏中,当用户使用时可以通过点击任务栏上的该程序图标来激活该程序,一方将程序激活后,在“请输入所要连接的主机名:“右侧的我框中输入需要连接的计算机名,并敲“连接”键便可连接成功。此时在“接收窗口:”下的我框中将会出现“连接成功”的提示。然后就可以在“发送窗口:”下的我框中输入要说的话了,输入完毕后敲“发送”键后便可使另一方收到你的话了,如果另一方的程序尚未正常化,那么另一方程序将发出提示音并使任务栏中程序的图标闪烁,直到另一方将程序激活为正常化并与你对话为止。如果暂时停止对话可以点击该程序的极小化按钮将程序最小化,一旦需要再次通话可直接激活该程序发送过去,如果另一方的程序尚未正常化,那么程序仍将发出提示音并使开使栏中程序的小图标闪烁,直到另一方将程序正常化并与你对话为止。所以,无论什么时候想与对方通话只要对方开了机便可以实现。当需要断开连接时请按“关闭”键,该程序能自动发送结束消息,使对方能够知道你已断开连接,以结束程序运行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)