UDP点对点聊天系统.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UDP点对点聊天系统

* * 第七章 网络编程 7.1 概述 VB6.0的网络应用是基于分布式组件模型实现的,它能够创建功能强大的Internet和Intranet应用程序。 Sockets是在Unix系统上提出来的,一开始主要是用于本地通讯,但很快就应用到C/S体系上。MicroSoft公司在此基础上创建了WinSock控件,专门用于Windows接口,与Sockets完全兼容。Winsock控件对用户来说是不可见的,它提供了访问 TCP 和 UDP 网络服务的方便途径。Microsoft Access、Visual Basic、Visual C++ 或 Visual FoxPro 的开发人员都可使用它。为编写客户或服务器应用程序,不必了解 TCP 的细节或调用低级的 Winsock APIs。通过设置控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且还可双向交换数据。 7.2 Winsock控件 Winsocket控件被用来建立与远程计算机的连接,并通过用户数据报文协议(UDP)或者传输控制协议(TCP)进行数据交换。 Winsock的使用方法: (1)选择通信协议 (2)确定需要连接的远程计算机 (3)确定远程计算机连接端口 7.2.1 选择通信协议 在使用Winsock控件时,首先需要考虑使用什么通信协议,其可以使用TCP或UDP这两种通信协议。通过设置Winsock控件的Protocol属性值(sckTCPProtocol或者sckUDPProtocol),能够选择通信协议。例如以下代码: Winsock1.Protocol= sckTCPProtocol TCP、UDP协议这两种协议之间的区别体现在他们的连接状态上,其中 TCP协议控件是基于连接的协议,它与电话系统相似,在开始传输之前,用户必须先建立连接。 UDP协议是一种无连接的协议,两台计算机之间的传输类似于传递邮件,并且单次传输的最大数据量与具体网络有关。 应该选择哪一种协议,往往需要由所创建的应用程序用途来决定。UDP协议适合发送少量的数据,因此若图像或者声音文件,则TCP协议所建立的明确连接,能更有效地确保数据传输的完整性。另外,在发送数据的时候,应用程序若需要得到客户端或者服务器的确认信息,则TCP协议更加适合。 第一步 选择通信协议 在与远程计算机相连接的时候,需要知道它的IP地址或者名称。通过设置Winsock控件的RemoteHost属性值,可以确定需要连接的计算机。 第二步 确定需要连接的远程计算机 通过设置Winsock控件的LocalPort属性值和Remote属性值,可以确定本地计算机和远程计算机的端口。它们默认的属性值是0。 端口0表示端口号是随机的,以便于计算机之间动态建立连接。 第三步 确定计算机端口 7.2.1 示例:基于UDP协议的点对点通信 在基于TCP协议的通信程序中,服务器上的Winsock空间必须显式地进行“监听”,而客户端的Winsock空间必须使用Connect方法进行初始化连接。而UDP是无连接的协议,它与TCP通信协议的操作不同,计算机并不建立连接。而且,UDP应用程序既可以是客户机,也可以是服务器。也就是说,两台计算机的通信程序是“平等的”。因此,基于UDP协议的通信,可以看作点对点的通信。 在使用UDP协议的时候,由于不需要进行连接,因此也就可以在程序运行时任意修改RemoteHost和RemotePort属性(TCP协议在改变RemoteHost和RemotePort属性之前,必须先关闭连接),但必须始终保持绑定在同一个LocalPort上。 UDP通信程序设计步骤: 在两个Winsock控件之间使用UDP协议进行数据通信,一般需要完成以下几步设置: (1)将Winsock控件的Protocol属性设置为1-sckUDPProtocol (2)设置Winsock控件的LocalPort属性值(本地端口)。 (3)将Winsock控件的RemoteHost属性设置为与其通信的计算机名或者IP地址(远程主机) (4)将Winsock控件的RemotePort属性设置为与其进行通信的Winsock控件的LocalPort属性值(远程端口)。 (5)调用Bind方法绑定本地端口,以阻止其他应用程序使用同样的端口。 工程的窗体设计视图 UDP示例程序中窗体的设计视图

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档