要与客户程序Lo— (5)在“计算机名称”框中可以找到计算机的 calPort属性一致。
名称。
只有这样设置,两个程序间才能正常通信,这 (6)上面找到的计算机名称可以作为Re. 部分
代码如下:moteHost属性的值。
Private Sub Form—Load() 3.2建立【聊天A】程序 ’设置双方网络地址 (1)打开Visual Basic6.0中文版,建立标准 Winsockl.LocalPort=1024程序,并设置窗体标题为“聊天A’’。
Winsockl.RemoteHost=”202.99.6.101” (2)把Winsock控件拖放到窗体中,并设置 Winsockl.RemotePort=1997Protocol属性为1一sckUDPProtocol,其他属性为 End Sub缺省值。
(2)在文本框的Change事件中,发送用户输 (3)在窗体上放置两个标签框,设置两标签框 入的数据。
的Caption属性分别为“接收窗”和“发送窗”。
再 Private Sub Textl。
Change()放置两个文本框,设置文本框的MultiLing属性 ’发送用户输入的内容设置为True即为多行显示,并将ScrolIBars属性 Winsockl.Senddate Textl.Text值设置为2一Vertical加垂直滚动条。
窗体如图1 End Sub所示。
(3)有数据到达时,显示对方的数据内容。
Private Sub Winsockl.DataArrival(ByVal bytestotal As Long) Dim rec As String ’接收对方数据并在文本框内显示 Winsockl.GetData ree,vbString Text2.Text=ree End Sub 到这里已经完成【聊天A】程序设计,保存并 将其编译成执行文件。
3.3建立【聊天B】程序 由于A,B是平等的。
因此处理方式及流程 图1“聊天”程序的界面布局 一样,只需按上述原则在Form—Load中设置好其 网络地址,其他部分则完全一样。
下面编写
代码: Private Sub Form—Load() (1)在Form—Load过程中设置网络地址,这里 ’设置双方网络地址要设置LocalPort,RemoteHost和RemotePort属 Winsoekl.LocalPort=1997性。
为保证信息能够传送到相应程序,需按下面 Winsockl.RemoteHost=”202.99.6.101’’规则设置属性: Winsockl.RemotePort=1024 【聊天A】的RemoteHost设置为运行【聊天 End SubB】程序的主机地址。
完成【聊天B】的设计,将其存盘并编译。
现 【聊天A】的RemoteProt设置要与【聊天B】的 在可使用这个程序进行对话了,结果如图2所示。
LocalPort属性一致。
万方数据 202005年第2期 周 娟 陈向华:在VB中使用Winsock控件建立基于UDP协议的应用程序 图2运行着的聊天程序 如果要试用上面的例子,按F5键运行工程, 家万户。
然后在两个窗体的文本框中分别键人一些文本。
(2)创建一个服务器应用程序,作为多用户数键入的文字将出现在另一个窗体的文本框中。
据的汇入点。
这一用途和第一种用途配合使用, 不论怎么说,这段程序毕竟还是太简单了,尤 必将会为您带来丰厚的商业利润。
其是它的功能少,现有的功能也不完善,在用一段 (3)创建“聊天”应用程序。
我们已经设计了时间后就会发现它远远不能满足要求,但这都不 一个聊天程序,或许您可以将它设计得更好,像是Winsock的问题。
而需要我们不断改进它,充 Microsoft Chat或mlRC等流行的聊天软件一样,实它,扩展它的功能,增强它的容错性能。
只要您 成为市场上的抢手货。
会使用VB6.0编程,就可以逐步解决这些问题。
参考文献 4结束语 〔1〕吴昌平.Visual Basic6.0程序设计〔M〕. 既然掌握了Winsock控件在VB中建立UDP 人民邮电出版社.程序的使用方法,我们就有理由设计出更实用、更 〔2〕牛力.Visual Basic 6编程宝典〔M〕.电子先进的软件来。
Winsock控件一般有以下用途: 工业出版社. (1)创建收集用户信息的客户端应用程序,并 〔3〕段兴.Visual Basic 6.0控件实用程序设计将收集的信息发送到某中央服务器。
比如,您可 〔M〕.人民邮电出版社.以使用这一用途来设计数据采集程序,将繁重的数据录入工作分散到基层,或者设计成在Inter. 本文作者周娟为机械工程系助教net上进行客户调查和注册的部件,将它下载到千 陈向华为招生就业处助教 万方数据