- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
两台PC机间的通信
两台PC通信的编程实现 TCP/IP体系结构 TCP/IP是一个四层协议,它的结构如下图所示: TCP/IP主要包括以下协议: TCP/UDP协议 TCP/IP特点 TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中实现。因此用户一般不涉及。右图是TCP/IP协议核心与应用程序关系图。 套接字(Socket) 客户机/服务器模型 Socket编程 MFC Windows Sockets网络编程基础 基于UDP的Socket应用程序实现两台PC机之间的通信 基于TCP的Socket应用程序实现两台PC机之间的通信 * 主机 Internet TCP/IP 主机 TCP/UDP协议 TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。 其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送。 而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要有:Telnet、FTP(File Transfer Protocol )、SMTP(Simple Mail Transfer Protocol)等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。 套接字(Socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,可以将套接字看作不同主机间的进程进行双向通信的端点。一个套接口是通信的一端,在这一端上可以找到与其对应的一个名字。一个正在被使用的套接口都有它的类型和与其相关的进程。套接口存在通信域中,通信域是为了处理一般的线程通过套接口通信而引入的一种抽象概念。套接口通常和同一个域中的套接口交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序)。WINDOWS 中的套接字只支持一个域——网际域。 根据网络通信的性质,套接字可分为两类:流套接字和数据报套接字。 1. 流套接字提供双向的,有序的,无重复并且无记录边界的数据流服务,它适用于处理大量数据,网络传输层可以将数据分散或集中到合适尺寸的数据包中,它是面向连接的。 2. 数据报套接字支持双向的数据流,但它不保证数据传输的可靠性,有序性和无重复性,它是面向无连接的,不保证接受端是否正在侦听,类似于邮政服务。 不论是流套接字还是数据报套接字编程,一般都采用客户机/服务器方式,它们的运作过程基本类似 。 在这种模型中,客户应用程序向服务器程序请求服务。这种方式隐含了在建立客户机/服务器间通信时的非对称性。客户机/服务器模型工作时要求有一套为客户机和服务器所共识的惯例,来保证服务能够被提供(或接受)。这一套惯例包含了一套协议,它必须在通信的两头都被实现。根据不同的情况,协议可能是对称的或是非对称的。在对称的协议中,每一方都有可能扮演主从角色;在非对称协议中,一方被不可改变地认为是主机,而另一方则是从机。例如:Internet中用于终端仿真的Telnet是对称的,而Internet中的FTP是非对称的。无论具体的协议是对称的或是非对称的,当服务被提供时必然存在“客户进程”和“服务进程”。 一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直出于休眠状态,直到一个客户对这个服务的地址提出了链接请求。在这个时刻,服务程序被“惊醒”并且为客户提供服务——对客户的请求做出适当的反应。 套接字(Socket)是套接口描述字的简称。Socket提供了一种通信机制,可以用作Windows的一种通信方式。应用程序创建一个套接字后,就能够获得这种机制提供的网络服务功能。对于服务器来讲,它提供了监听网络的连接请求;对于客户机而言,它可以连接到一个给定的主计算机和特定的端口上。客户端和服务器端可以通过套接字对象来发送和接收数据
文档评论(0)