首页 学校文化 作品展示 咨询留言 课程介绍 招聘求职 权威认证 精彩教程 |
![]() |
|
![]() |
| 您当前的位置:长城教育网 >> 精彩教程 >> 编程开发 >> 正文 |
![]() |
![]() |
![]() |
|
VB网络编程中Winsock的使用(二) |
||||||
| 文章导读: 长城计算机学校报名咨询:0315-7759907 就业中心:0315-2625172 电脑硬件:0315-2657607 网站开发:0315-2931022 装修设计:0315-2678275 电子邮箱:ccjyw@263.net 咨询QQ:412644056 工作时间:周一至周六8:00-21:00;周日:8:00-18:00 导读广告 |
||||||
算机学校 唐山电脑学校 唐山计算机学校 |
正文: ♣frmclient窗体的设计内容 窗体的配置内容如图3-2 ![]() ♣程序的代码 private sub form_load() ‘指定远程主机的ip地址。如果是localhost,代表的ip地址为127.0.0.1,并且也代表本机。 Tcpclient.RemoteHost=”localhost” ‘设置本机连接端口的localport属性的内容 ‘请注意!必须是整体值 tcpclient.remoteport=2000 ‘设置窗体的标题内容 Me.Caption=”frmclient” Label1.caption=”传送的文字” Label2.caption=”接收的文字” Cmdconnect.caption=”与主机连接” End sub Private sub cmdconnect_click() ‘调用tcpclient控件的connect方法,来初始化与主机的连接请求 tcpclient.connect end sub private sub txtsend_change() ‘当txtsend控件的内容发生变化时,立即调用tcpclient控件的senddata方法,将txtsend控件的内容传送给主机 tcpclient.senddata txtsend.text end sub private sub tcpclient_dataarrival(byval bytestotal as long) ‘说明即将接收的数据类型 dim strdata as string ‘调用tcpclient控件的getdata方法,将接收的数据以vbstring数据类型存放strdata变量之中。 Tcpclient.getdata strdata,vbstring ‘将strdata变量的内容,存放在txtoutput控件之中。 Txtreceive.text=strdata End sub ♣程序的执行结果 ![]() 当您的应用程序架构是属于主从式架构时,一般来说,客户端应该不止一个而已。但是,如果每一个客户端使用的一组连接端口时,那么如果有100个客户端呢?如果有1000个客户端呢?那么究竟要增加多少个winsock控件呢?同时,也得要分成100(或是1000)组accept子程序,接着每一部客户端都必须记得固定的连接端口号。 其实,您大可不必如此辛苦。您可以利用Visable Basic控件数组的方式并利用监听用的数组元素(一般都是索引值“ private connmax as long private sub form_load () dim I as integer connmax =200 sckserver(0).localport=1001 sckserver(0).listen for I =1 to connmax load sckserver(i) next end sub private sub sckserver_connectionrequest(index as integer,byval requestid as long) dim I as intege for I =1 to connmax if sckserver(1).state=sckclosed then sckserver(I).accept requestid end if end if end sub 在上述的程序范例中,将会建立一个具有“ 4.UDP连接的基础 在 建立UDP的应用程序时,其过程会比TCP协议简单许多。这是由于UDP协议在数据传送之前,可以不需要特别明确的连接方式。但是,在上述的TCP连接方式之中,Winsocke控件必须设置在“监听(Linsten)”状态之下,同时在客户端准备与主机进行连接时,主机端也必须要使用Accept方法来允许客户端所要求的连接。 反观在UDP协议方面,双方仅仅需要使用Bind方法,即可与对方连接并且传输数九,因此,UDP协议连接过程的处理方式确实比TCP简单许多。下面介绍使用UDP协议来传送信息的过程。 4-1UDP的连接范例 在此只做简单的介绍 ♣窗体frm PeerA的设计内容 如图4-1所示 ![]() ♣窗体的程序代码 Private Sub Form_Load() ′控件的名字为udpPeerA With udpPeerA′重点:必须将 RemoteHost 的值修改为对方计算机的名字。 RemoteHost= ″PeerB″ RemotePort = 1001 ′连接的端口号。 Bind 1002 ′绑定到本地的端口。 End With frmPeerB.Show′显示第二个窗体。 End Sub Private Sub txtSend_Change() ′在键入文本时,立即将其发送出去。 udpPeerA.SendData txtSend.Text End Sub Private Sub udpPeerA_DataArrival (ByVal bytesTotal As Long) Dim strData As String udpPeerA.GetData strData txtOutput.Text = strData End Sub ♣窗体frmpeerB的设计内容 如图4-2所示 ![]() ♣窗体frmpeerB的程序代码 Private Sub Form_Load() ′控件的名字为 udpPeerB。 With udpPeerB ′重点:必须将RemoteHost的值改为对方计算机的名字。 RemoteHost= ″PeerA″ RemotePort = 1002 ′要连接的端口。 Bind 1001 ′绑定到本地的端口上。 End With End Sub Private Sub txtSend_Change() ′在键入后立即发送文本。 udpPeerB.SendData txtSend.Text End Sub Private Sub udpPeerB_DataArrival (ByVal bytesTotal As Long) Dim strData As String udpPeerB.GetData strData txtOutput.Text = strData End Sub 长城计学校 长城教育版权所有 唐山电脑学校 唐山计算机学校 |
|||||
文章录入:长城学校 |
||||||
| 设为首页 | 加入收藏 | 关于学校| 对外事业 | 联系站长 | 友情链接 | 咨询留言 | |||||||
学校地址:河北省唐山市新华西道21-2号四层长城计算机学校(农贸市场西行50米路北,可儿数码城对面) 乘车路线:市内乘坐2路、10路、38路、29路、61路、36路、35路、40路农贸市场下车,也可在百货大楼下车,西行即可 报名咨询:0315-7759907 就业中心:0315-2625172 电脑硬件:0315-2657607 网站开发:0315-2931022 装修设计:0315-2678275 电子邮箱:ccjyw@263.net 咨询QQ:412644056 工作时间:周一至周六8:00-21:00;周日:8:00-18:00 Copyright© 2002-2008 长城教育 All Rights Reserved |
![]() |
![]() |
![]() |