- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TCP/IP—协议分析与应用编程 第七章 套接字编程 主要内容 客户机/服务器模型 套接字概念 套接字编程基础 WinSock函数 基于TCP的应用编程 基于UDP的应用编程 学习目标 理解客户机/服务器模型的工作机理。 掌握套接字的概念。 掌握基于套接字的面向连接和无连接客户机/服务器程序的设计原理,了解相关的WinSock API函数。 通过程序实例,了解基于TCP和UDP的程序设计方法。 客户机/服务器模型 客户机/服务器模型的工作流程 客户机/服务器模型 服务器程序特点 一般启动后就一直处于运行状态,以等待客户机进程的请求; 使用的端口往往是熟知端口,便于客户机进程连接请求; 一般拥有较多的系统资源,以便及时响应各个客户机进程的请求; 可以并行处理多个客户机进程的请求,但数目是有一定的限制; 在通信时一般处于被动的一方,不需要知道客户机的IP地址和端口信息。 客户机/服务器模型 客户机程序特点 在需要服务器进程的服务时将向服务器进程请求服务,并建立通信连接,得到满足并完成处理后就终止通信连接; 使用向系统申请的临时端口与服务器进程进行通信,通信完成后将释放该端口; 拥有相对较少的系统资源; 在通信时属于主动的一方,需要事先知道服务器的IP地址和端口信息。 套接字概念 在网络中要全局地标识一个参与通信的进程,需要采用三元组:协议、主机IP地址、端口号。 要描述两个应用进程之间的端到端的通信关联则需要一个五元组:协议、信源机IP地址、信源应用进程端口、信宿机IP地址、信宿应用进程端口。 套接字可以理解为通信连接的一端,其主要包括协议、主机IP地址和端口号。 将两个套接字连接到一起便可以在不同应用进程之间传递数据 套接字实现了对网络和传输层协议的封装,为应用进程之间的通信连接的建立、数据传输等通信过程提供了编程界面。 套接字概念 使用套接字通信示意图 基于套接字的通信过程可以描述为: 创建/打开套接字、向套接字收发数据、关闭套接字。 套接字概念 针对不同的通信需求,在TCP/IP中提供了3种不同套接字类型 流套接字(SOCK_STREAM):用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议——TCP。这类套接字中,传输数据之前必须在两个应用进程之间建立一条通信连接,这就确保了参与通信的两个应用进程都是活动并且响应的。当连接建立之后,应用进程只要通过套接字向TCP层发送数据流,而另一个应用进程便可以接收到相应的数据流,它们不需要知道传输层是如何对数据流进行处理。特别需要注意的是通信连接必须显式建立。该套接字类型适合传输大量的数据,但不支持广播和多播方式。 套接字概念 针对不同的通信需求,在TCP/IP中提供了3种不同套接字类型(续) 数据报套接字(SOCK_DGRAM):提供了一种无连接的服务,通信双方不需要建立任何显式连接,数据可以发送到指定的套接字,并且可以从指定的套接字接收数据。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据报套接字使用UDP进行数据的传输。由于数据包套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理。与数据报套接字相比,使用流式套接字是一个更为可靠的方法,但对于某些应用,建立一个显式连接所导致的系统开销是令人难以接收的,并且数据报套接字支持广播和多播方式。 套接字概念 针对不同的通信需求,在TCP/IP中提供了3种不同套接字类型(续) 原始套接字(SOCK_RAW):与标准套接字(标准套接字指的是前面介绍的流套接字和数据报套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP的数据,数据报套接字只能读取UDP的数据。使用原始套接字的主要目的是为了避开TCP/IP处理机制,被传送的数据包可以被直接传送给需要它的应用程序。因此,其主要是在编写自定义底层协议的应用程序时使用,例如各种不同的TCP/IP实用程序(如ping和arp)都使用原始套接字实现,也可以用来实现数据包捕捉分析等。 套接字编程基础 从应用编程角度来看,套接字就是TCP/IP网络编程接口的集合,它是应用程序与TCP/IP协议族通信的中间软件抽象层,其中包含了许多函数或例程,程序员可以用它们来开发网络应用程序 套接字编程基础 面向连接的客户机/服务器程序工作模型 套接字编程基础 面向连接的客户机/服务器程序工作模型 服务器进程的五元组建立 由socket函数确定所使用的协议。 由bind函数实现与本地IP和端口号的绑定,即确定本地IP和端口号。 由accept函数实现与远程IP地址和
您可能关注的文档
- SQL Server数据库原理及应用 第二版 教学课件 作者 曾长军 第 1 章 数据库基础概述.ppt
- SQL Server数据库原理及应用 第二版 教学课件 作者 曾长军 第 2 章 SQL Server 2000简介.ppt
- SQL Server数据库原理及应用 第二版 教学课件 作者 曾长军 第 3 章 SQL Server数据库管理.ppt
- SQL Server数据库原理及应用 第二版 教学课件 作者 曾长军 第 4 章 表与视图.ppt
- SQL Server数据库原理及应用 第二版 教学课件 作者 曾长军 第 5 章 SQL(结构化查询语言).ppt
- SQL Server数据库原理及应用 第二版 教学课件 作者 曾长军 第 6 章 TransactSQL.ppt
- SQL Server数据库原理及应用 第二版 教学课件 作者 曾长军 第 7 章 索引与数据完整性.ppt
- SQL Server数据库原理及应用 第二版 教学课件 作者 曾长军 第 8 章 存储过程和触发器.ppt
- SQL Server数据库原理及应用 第二版 教学课件 作者 曾长军 第 9 章 备份恢复.ppt
- SQL Server数据库原理及应用 第二版 教学课件 作者 曾长军 第 10 章 系统安全管理.ppt
- TCP_IP——协议分析与应用编程 教学课件 李峰 陈向益 第8章.ppt
- TCP_IP——协议分析与应用编程 教学课件 李峰 陈向益 第9章.ppt
- TCP_IP——协议分析与应用编程 教学课件 李峰 陈向益 第10章.ppt
- TCP_IP——协议分析与应用编程 教学课件 李峰 陈向益 第11章.ppt
- TCP_IP——协议分析与应用编程 教学课件 李峰 陈向益 第12章.ppt
- TCP_IP——协议分析与应用编程 教学课件 李峰 陈向益 第13章.ppt
- TCP_IP协议及其应用 教学课件 作者 林成浴 高校精品系列TCPIP01.ppt
- TCP_IP协议及其应用 教学课件 作者 林成浴 高校精品系列TCPIP02.ppt
- TCP_IP协议及其应用 教学课件 作者 林成浴 高校精品系列TCPIP03.ppt
- TCP_IP协议及其应用 教学课件 作者 林成浴 高校精品系列TCPIP04.ppt
文档评论(0)