首页  学校文化  作品展示  咨询留言  课程介绍  招聘求职  权威认证  精彩教程
咨询留言
在线报名
对外事业
您当前的位置:长城教育网 >> 精彩教程 >> 编程开发 >> 正文
长城学校暑期八折优惠招生 长城学校大专学历、中专学历证书班招生-学历网上可查 长城学校对外事业部承揽业务
VB网络编程中Winsock的使用(二)
作者:长城学校     来源:长城教育网     点击数:     更新时间:2006-8-24   
  文章导读:
长城计算机学校报名咨询: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

♣程序的执行结果

3-1-1如何允许更多客户端同时连接

当您的应用程序架构是属于主从式架构时,一般来说,客户端应该不止一个而已。但是,如果每一个客户端使用的一组连接端口时,那么如果有100个客户端呢?如果有1000个客户端呢?那么究竟要增加多少个winsock控件呢?同时,也得要分成100(或是1000)组accept子程序,接着每一部客户端都必须记得固定的连接端口号。

其实,您大可不必如此辛苦。您可以利用Visable Basic控件数组的方式并利用监听用的数组元素(一般都是索引值“0”),来触发ConnectRequest事件。接下来再利用判别控件数组元素的连接状态来进行远程客户端连接。以下的程序代码范例,就是如何让许多远程用户连接到同一个连接端口号的程序代码的模板:

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

在上述的程序范例中,将会建立一个具有“201”个元素的sckserver控件数组。接着,利用for。。。next循环的方式,来设置加载sckserver控件数组元素或是判断数组元素是否正在连接中进而允许客户端连接。至于sckserver控件数组总元素为“201”的原因在于——“connmax设置为200再加上sckserver(0),因此总元素数量为201”

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

长城计学校 长城教育版权所有 唐山电脑学校 唐山计算机学校

  文章录入:长城学校
  • 上一篇文章: VB网络编程中Winsock的使用(一)

  • 下一篇文章: 没有了
  • 我要咨询   我要报名   打印此文  关闭窗口
    热门文章
    推荐文章
    相关文章
    VB网络编程中Winsock的使用(一)
    VB.NET与Media Player9.0嵌入式开...
    在VB 2005中定制自己的异常(三)
    在VB 2005中定制自己的异常(二)
    在VB 2005中定制自己的异常(一)
    VB程序中用ADO对象动态创建数据库...
    VB程序中用ADO对象动态创建数据库...
    掌握VB中的ADO数据对象编程
     普通 怎样制作刻录系统自动还原光碟
     普通 学好五笔字型输入法的几点建议
     普通 输入法使用诀窍
     普通 广告策划书的书写
     普通 用 gdb 调试 GCC 程序
     普通 C 语言编程——什么是C
     普通 硬盘故障巧维修——了解常见的硬...
     普通 硬盘故障巧维修——为什么BIOS检...
     推荐 Adobe InDesign CS 简介
     推荐 电脑艺术设计大师之路#7-图像调...
     推荐 电脑艺术设计大师之路#6-图像调...
     推荐 3DS Max 7 Mental Ray渲染器全攻...
     推荐 电脑艺术设计大师之路#5-探索图...
     推荐 用Photoshop设计微形3D界面01
     推荐 3DS Max 7 Mental Ray渲染器全攻...
     推荐 Firewoks 营造残破纹理02
     
     
     
     
     
    设为首页 | 加入收藏 | 关于学校|  对外事业 | 联系站长 | 友情链接 | 咨询留言