您现在的位置: 范文先生网 >> 理工论文 >> 计算机论文 >> 正文

基于VB的分布式监控系统通信设计

时间:2007-1-30栏目:计算机论文

. 网络通信
VB6.0与旧版本相比较,最明显的特点是增加了强大的网络功能,将其用于分布式监控系统中可以轻松地实现远程通信。VB的WINSOCK控件有效屏蔽了对WINDOWS套接字的低层操作,可方便地建立起网络中任意两个具有唯一IP地址节点间的连接,并通过UDP或TCP协议进行数据交换,可用于创建Client/Server应用程序。
本文举分布式监控系统中节点间通信的实例,其中节点A(IP地址202.114.102.134)作为服务器负责某一区域的数据采集与处理,程序内有一名为TCPServer的Winsock控件;节点B(IP地址202.114.102.135)是同级或上一级的某一节点,作为客户机,其程序内有一名为TCPClient的Winsock控件。
节点A服务器核心程序如下:
(1)初始化程序
tcpserver(0).RemoteHostIP = 202.114.102.135
tcpserver(0).LocalPort = 1001   'tcpserver(0)专用于侦听
tcpserver(0).Listen
(2)发送数据程序
tcpserver(Index).SendData Text1.Text
(3)处理客户机连接请求程序
Private Sub TCPServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Load tcpserver(Index)
tcpserver(Index).Accept requestID
End Sub
(4)客户机数据到达处理程序
Private Sub TCPServer_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim RD As String
tcpserver(Index).GetData RD, vbString
txtRD.text=RD
tcpserver(Index).SendData RD
End Sub
(5)关闭连接程序
Private Sub TCPServer_Close(Index As Integer)
tcpserver(Index).Close
Unload tcpserver(Index)
End Sub
以上程序着重说明Winsock控件的主要属性、方法和事件,如要实现多进程(多个客户程序同时运行),可应用创建控件数组来代表已连接的控件实例的方法处理。
节点B客户机核心程序如下:
Private ConnectFlag As Boolean               '设置判断是否连接标志

(1)初始化程序
TCPClient.RemoteHost IP= 202.114.102.134     '远程计算机IP地址
TCPClient.RemotePort = 1001                 '远程计算机端口
ConnectFlag = False    
(2)申请连接程序
If  Not ConnectFlag Then
TCPClient.Close
TCPClient.Connect
Do
  DoEvents
Loop Until TCPClient.State = sckConnected
ConnectFlag = True
End Sub
(3)数据到达处理程序
Private Sub TCPClient_DataArrival(ByVal bytesTotal As Long)
Dim RD As String
TCPClient.GetData RD, vbString
txtRD.text = RD
End Sub
(4)发送数据程序
TCPClient.SendData txtSD.Text
(5)关闭连接程序
Private Sub TCPClient_Close()
TCPClient.Close
Do
  DoEvents
Loop Until TCPCli

上一页  [1] [2] [3] [4] 下一页

下页更精彩:1 2 3 4 下一页