在VB中使用Winsock实现通信.docxVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在VB中使用Winsock实现通信

在VB中使用Winsock实现通信2007-12-11 10:08:35|???????最近刚接触VB,学习了用Winsock创建聊天应用程序。下面的实例分别用TCP协议和UDP协议实现通讯。1. 选择通讯协议的标准????? 在使用WinSock控件时,可以使用的协议包括TCP和UDP。两种协议之间的重要区别在于它们的连接状态:a).TCP协议控件是基于连接的协议,可以将它同电话系统相比。在开始数据传输之前,用户必须先建立连接。b).UDP协议是一种无连接协议,两台计算机之间的传输类似于传递邮件:消息从一台计算机发送到另一台计算机,但是两者之间没有明确的连接。2. Winsock控件使用TCP协议?????? 如果应用程序要使用TCP协议,那么首先必须决定应用程序是服务器还是客户端。如果要创建一个服务器端,那么应用程序需要“监听”指定的端口。当客户端提出连接请求时,服务器端能够接受请求并建立连接。在连接建立之后,客户端与服务器端可以自由地互相通讯。?2.1 TCP服务器端??窗体设计:为窗体添加如下的代码:???? ?Private Sub Form_Load()??? 设置本地端口号为6000??? Winsock1.LocalPort = 6000??? 打开监听??? Winsock1.ListenEnd SubPrivate Sub Winsock1_ConnectionRequest(ByValRequestID As Long)??? Dim myStr As String??? 如果当前状态处于连接状态,则先关闭连接,再接收新的请求??? If Winsock1.State sckClosed Then?????? myStr = MsgBox(客户请求建立连接,是否允许?, vbOKCancel)?????? If myStr = vbOK Then?????? 关闭连接?????? Winsock1.Close?????? 接收客户请求,建立连接?????? Winsock1.Accept RequestID?????? Winsock1.SendData 接收?????? MsgBox 与客户建立了新连接?????? End If??? End IfEnd SubPrivate Sub Winsock1_DataArrival(ByValbytesTotal As Long)??? Dim myStr As String??? 调用GetData方法接收数据??? Winsock1.GetData myStr??? Text2.Text = myStrEnd SubPrivate Sub Winsock1_Close()??? Winsock1.Close??? Winsock1.Listen??? MsgBox 与客户断开连接End SubPrivate Sub Text1_Change()??? 当服务器端的文本框中的内容发生变化时,使用SendData方法发送信息??? Winsock1.SendData Text1.TextEnd Sub2.2 TCP客户端????????????窗体设计:为窗体添加如下代码:Private Sub Form_Load()??? Text1 = 192.168.1.22??? Text2 = 6000End SubPrivate Sub Command1_Click()??? If Winsock1.State = sckClosed Then??? 设置服务器的IP地址??? Winsock1.RemoteHost = Trim(Text1.Text)??? 设置服务器的端口号??? Winsock1.RemotePort = Trim(Text2.Text)??? 发出连接请求??? Winsock1.Connect??? End IfEnd SubPrivate Sub Winsock1_DataArrival(ByValbytesTotal As Long)??? Dim myStr As String??? 调用GetData方法接收数据??? Winsock1.GetData myStr??? Text4.Text = myStr??? Option1.Value = TrueEnd SubPrivate Sub Winsock1_Close()????? Winsock1.Close????? Option2.Value = TrueEnd SubPrivate Sub Text3_Change()??? 当txtSend控件的内容发生变化时,调用SendData将信息传送给主机??? Winsock1.SendData Text3.TextEnd

文档评论(0)

xjj2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档