- 2
- 0
- 约 23页
- 2017-08-25 发布于广东
- 举报
第8章计算机网络应用程序设计 8.1 套接口API的有关概念 8.2 基本Socket函数 8.3 基于TCP的socket程序设计 8.4 基于UDP的socket 程序设计 8.5 输入输出多路复用 8.6 并发服务器程序设计 8.1 套接口API的有关概念 8.1.1 网络应用编程接口 Berkeley套接口API WinSock 远程过程调用(RPC) 8.1.2 socket编程模型及类型 套接口可分如下5种类型:流式套接字、数据报套接字、原始套接字、SOCK_SEQPACKET及SOCK_RDM。 流式套接字定义了一种可靠的面向连接的服务,实现了无差错的数据传输。 数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠。 原始套接字允许对低层协议如IP或ICMP直接访问,主要用于新的网络协议实现的测试等。 8.1.3 socket地址——应用进程的标识 Internet上两台主机种的进程间要进行通信,必须能够互相识别。用于标识进程的信息有两个: 主机名或主机地址 主机内部标识进程的标识符 这两部分合在一起,成为套接口地址(计算机通信的基础构筑块 ) 8.1.4 通信进程的阻塞和非阻塞方式 对于运行状态中的进程来说,当某些条件不具备,如输入输出条件还没有准备好时,该进程可以有两种处理方式:阻塞与非阻塞。 阻塞方式在阻塞方式下,当输入输出条件还没有准备好时,就将进程转入阻塞状态,标记阻塞原因,并保留当前进程现场信息,然后将控制转入进程调度程序,等阻塞原因解除后,将进程状态由阻塞变成就绪等待处理机,或直接获得由调度程序再次分配的处理机,恢复阻塞的现场继续执行。 非阻塞方式在非阻塞方式下,当输入输出条件还没有准备好时,进程仍处于运行状态,通过循环,反复进行某条件的查询。一般说来,阻塞机制可以防止进程在循环反复的查询等待中造成资源浪费。但是有时在应用中需要进程一直处于运行状态,不希望进程在对socket的操作中阻塞,这时就要使用非阻塞机制。 8.2 基本Socket函数 8.2.1 初始化套接口——服务绑定socket() 1、功能: 在应用程序中使用插口API时,首先要创建一个插口--socket。为了说明什么是socket,可以打个比方:一个电话插座,既可以接电话机打电话,也可以接传真机发传真,还可以接计算机上网。接上什么设备,就是绑定了什么服务。创建一个插口,就是创建一个通信,需要指定提供什么服务,即为一个标识符绑定某个服务,并为之分配资源。这个标识就是该插口标识。 应用程序调用socket()函数将创建一个插口。 2、原型 8.2.2 本地地址绑定bind() 1、功能调用函数bind(),可以将本地地址与插口绑定在一起。调用成功时,返回0;否则,返回1,并设置全局变量errno为错误类型 2、原型 8.2.3 建立套接口连接-绑定远程服务器地址connect() 功能函数connect()可以让客户机程序建立一个与TCP服务器的连接. 原型 8.2.4 套接口被动转换listen() 函数listen()有两个功能。(1)主动插口的被动转换socket()创建的插口都是主动插口,只可以用来(调用connect())进行主动连接(发出请求),不能接收连接请求。listen()函数将未连接的主动插口转换为被动插口,即倾听插口(listening socket),告诉操作系统该插口可以接收连接请求。所以listen()也称为创建倾听插口函数。(2)设置最大请求连接数listen()用一个参数(backlog)指定完成队列的最大长度。如果一个客户机的SYN数据段到达时,倾听插口的完成队列已经满了,TCP则忽略这个SYN数据段。listen()函数执行成功,返回0,服务器的TCP状态由CLOSED转变成LISTEN,成为被动模式;执行失败,返回1。 原型 8.2.4 套接口被动转换listen() 创建TCP服务器倾听插口的过程 (1)首先调用socket()函数创建一个主动插口;(2)调用bind()函数进行插口地址绑定;(3)调用listen()函数进行转换。 8.2.5 从被动套接口的完成队列中接受一个连接请求accept() 功能一个插口被创建、用bind绑定本地地址并转换成被动模式后,必须接收一个连接请求。一旦接收了连接,服务器就能使用该连接与客户机进行通信。面向连接传输协议的服务器调用 accept从被动(倾听)插口的完成连接队列中接收下一个连接请求。如果该完成连接队列空,则使这个进程睡眠。 原型 8.2.5 从被动
您可能关注的文档
- 第5章 嵌入式系统设计实例课件.ppt
- 第5章 体育消费行为分析课件.ppt
- 第5章_ASIC专题课件.ppt
- 第5章_基于S3C2410的系统硬件设计课件.ppt
- 第5章--程序设计知识课件.ppt
- 第05章数控维修及其维护课件.ppt
- 第5章消费者需要动机课件.ppt
- 第6讲 教师的基本能力素养-2015年教师资格培训—学科专业素质课件.ppt
- 第6讲 质量管理课件.ppt
- 第6章 CATV系统课件.ppt
- 人教版九年级英语Unit 4曾害怕课件3a-4c.pdf
- 雅思口语考题回顾:朗阁海外考试研究中心2019年10月10日Part 1考题总结.pdf
- 2026届高三地理一轮复习课件小专题河流袭夺.pptx
- 【名师原创】复习专题5 三角函数 作者:合肥市第八中学 蒲荣飞名师工作室.docx
- 高中数学一轮复习 微专题2 抽象函数.docx
- 高中数学——复习专题4 空间向量与立体几何.docx
- 高中数学一轮复习 微专题3 空间几何体中的截面、轨迹问题.docx
- 高中数学一轮复习 微专题4 空间几何体的最值、范围问题.docx
- 导流洞施工质量通病防治手册.docx
- 江苏省徐州市第一中学、徐市第三中学等五校2026届高三上学期12月月考历史试题含答案.docx
最近下载
- 驱动电机及控制技术中职全套教学课件.pptx
- 创意简约卡通小清新医疗静脉输液的安全通用PPT模板.pptx VIP
- 标准图集-12J003-室外工程.pdf VIP
- 基于单片机的出租车计价器设计.docx VIP
- 实施指南《GB_T28698-2012滚动轴承电机用深沟球轴承技术条件》实施指南.docx VIP
- 新型水处理技术推广商业计划书.doc
- 期末复习+课件-2025-2026学年浙教版科学七年级上册科学.pptx VIP
- 我国航海教育管理研究的开题报告.docx VIP
- 新解读《GB_T 28698-2012滚动轴承 电机用深沟球轴承 技术条件》.pptx VIP
- 盆底康复治疗临床诊疗指南.docx VIP
原创力文档

文档评论(0)