- 7
- 0
- 约5.74千字
- 约 36页
- 2016-10-26 发布于广东
- 举报
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 2008数据库项目教程 教学课件 韩永印 王勇 情境3、应用开发 任务2、创建索引与视图.ppt
- 新SQL Server 2008数据库项目教程 教学课件 韩永印 王勇 情境3、应用开发 任务3、程序设计.ppt
- 新SQL Server 2008数据库项目教程 教学课件 韩永印 王勇 情境3、应用开发 任务4、开发案例.ppt
- 新SQL Server 2008数据库项目教程 教学课件 韩永印 王勇 数据库技术 课程介绍.ppt
- 新SQL Server 2008数据库应用技术 教学课件 张素青 孙杰 第1章.ppt
- 新SQL Server 2008数据库应用技术 教学课件 张素青 孙杰 第2章.ppt
- 新SQL Server 2008数据库应用技术 教学课件 张素青 孙杰 第5章.ppt
- 新SQL Server 2008数据库应用技术 教学课件 张素青 孙杰 第6章.ppt
- 新SQL Server 2008数据库应用技术 教学课件 张素青 孙杰 第7章.ppt
- 新SQL Server 2008数据库应用技术 教学课件 张素青 孙杰 第8章.ppt
- (2026春新版)部编版八年级语文下册《第一单元》PPT课件.pptx
- 2018电力监控系统网络安全监测装置技术规范.docx
- 2022电力监控系统安全防护方案审核要点.docx
- 2014电力电缆光伏系统EN 50618欧标.docx
- (2026春新版)人教版二年级数学下册《第三单元 万以内数的认识》教案.docx
- (2026春新版)人教版二年级数学下册《第四单元 万以内的加法和减法》教案.docx
- (2026春新版)人教版二年级数学下册《综合与实践 时间在哪里》教案.docx
- (2026春新版)苏教版二年级数学下册《综合与实践 时间有多长》教案 .pdf
- (2026春新版)部编版三年级语文下册第3单元(教案).docx
- (2026春新版)部编版三年级语文下册第8单元(教案).docx
最近下载
- 汽车热管理系统仿真分析与实例解析 课件 06 AI 技术与汽车热管理.pptx
- 《钛合金锻坯 缺陷检测 相控阵超声水浸检测方法》.pdf VIP
- F665065【复试】2024年长春理工大学070200物理学《复试物理光学》考研复试终极预测5套卷.pdf VIP
- 7.2《秦腔》课件(共43张PPT)(含音频+视频).pptx VIP
- 《急危重症护理学》配套ppt 9.第九章 泌尿系统功能监护.ppt VIP
- ZR-ZT-无油空压机培训资料.ppt VIP
- 2025年度医院党支部组织生活会临床医生个人对照检查材料.doc VIP
- (国家标准)GB T 7424.1-2003 光缆总规范 第1部分:总则.pdf
- 《工业控制系统信息安全防护指南》解读.doc VIP
- 救护员培训应急救护PPT课件.pptx VIP
原创力文档

文档评论(0)