- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 《计算机网络编程》 第四讲 套接字API 套接字的概念 Berkeley套接字 套接字概要 套接字主要系统调用 用于整数转换的函数调用 在程序中使用套接字调用 套接字调用参数相关的符号常量 目录 计算机网络编程 电子科大计算机学院 计算机网络编程 电子科大计算机学院 什么是套接字 1. 套接字是一个主机本地应用程序所创建的, 为操作系统所控制的接口 (“门”) . 2. 应用进程通过这个接口,使用传输层提供的服务, 跨网络发送(或接收)消息. 3.Client/server模式的通信接口——套接字接口. socket process TCP with buffers, variables socket 由应用程序 开发者控制 由操作系统控制 host or server process TCP with buffers, variables socket controlled by application developer controlled by operating system host or server internet 来自UNIX系统 Berkeley套接字 ARPA要求伯克利分校将TCP/IP移植到UNIX中 需要创建一个接口,便于应用程序使用这个接口 进行网络通信 尽可能使用现有的系统调用,同时添加新的系统调用支持TCP/IP。 这个系统被称为BSD UNIX (Berkeley Software Distribution),成为事实上的标准 1981提出于BSD4.1 UNIX,本书基于BSD4.4 版本 计算机网络编程 电子科大计算机学院 Berkeley套接字 考虑:接口是专门针对TCP/IP协议, 还是可以为其它协议所用呢? 方法一:定义专门支持TCP/IP通信的一些函数 方法二:定义支持一般网络通信的函数,用参数使TCP/IP通信作为一种特例 Berkeley套接字使用第二种办法,具有通用性,TCP/IP是一个族PF_INET 另外,应用程序知名使用服务的类型,而不是指定协议名 争论: 通用性没有必要,使应用程序难以阅读 通用性可以使程序员免于了解协议族的细节 计算机网络编程 电子科大计算机学院 指明一个协议接口 文件描述符:进程的文件描述符表的下标。OS中每个进程对应一个文件描述符表,表中每个元素指向和文件相对应的一个内部的数据结构。 套接字和文件类似,每个活动套接字使用一个小整数标识,进程的文件描述符和套接字描述符值不能相同 socket函数:创建套接字,返回描述符(不是open函数) 计算机网络编程 电子科大计算机学院 套接字概要——套接字描述符 0: 1: 2: 3: 进程的文件描述符表 (一个进程一张) 用于文件0的内部数据结构 用于文件1的内部数据结构 用于文件2的内部数据结构 用于文件3的内部数据结构 调用socket将创建一个新的描述符条目 结构的许多字段是其他的系统调用来填 计算机网络编程 电子科大计算机学院 套接字概要——针对套接字的数据结构 0: 1: 2: 3: 4: 描述符表 (一个进程一张) family: PF_INET service: SOCK_STREAM Local IP: Remote IP: Local port: Remote port: : 创建方式相同,使用方式不同 等待传入连接的套接字——被动,如服务器套接字 发起连接的套接字——主动,如客户套接字 指明端点地址:创建时不指定,使用时指明 TCP/IP需要指明协议端口号和IP地址 TCP/IP协议族和地址族的对应: TCP/IP协议族:PF_INET 对应的TCP/IP的地址族:AF_INET 计算机网络编程 电子科大计算机学院 套接字概要——主动套接字和被动套接字 套接字系统定义的一般化的地址结构 (地址族,该族的端点地址) 计算机网络编程 电子科大计算机学院 类属地址结构 套接字的普通C定义结构 struct sockaddr { u_char sa_len; u_short sa_family; char sa_data[14];//14B }通用的地址结构(只是很适用于AF_INET族中的地址) TCP/IP的地址定义 struct sockaddr_in { u_char sin_len; u_short sin_family; u_short sin_port;//2B struct in_addr sin_addr;//4B char sin_zero[8];//8B
您可能关注的文档
- 急救护理学实训四_动脉穿刺置管术教材教学课件.pptx
- 急救护理学实训五_静脉穿刺置管术教材教学课件.pptx
- 急救护理学实训一_心肺复苏术教材教学课件.pptx
- 急救培训(心电图)教材教学课件.ppt
- 急救知识普及培训教材教学课件.ppt
- 急性呼吸窘迫综合征诊治和争论(ARDS)教材教学课件.ppt
- 急性心力衰竭的治疗与护理教材教学课件.ppt
- 急性右室心肌梗死心电图表现及其鉴别诊断教材教学课件.ppt
- 急性主动脉综合征影像学表现教材教学课件.ppt
- 疾病预防策略与措施教材教学课件.ppt
- 计算机网络编程_第五讲_客户软件设计中的算法和问题教材教学课件.ppt
- 计算机网络编程_前言教材教学课件.ppt
- 计算机网络基础与应用(第三版)模块六_使用Internet服务教材教学课件.pptx
- 计算机网络基础与应用(第三版)模块七_局域网的维护教材教学课件.pptx
- 计算机网络基础与应用(第三版)模块三_实施Windows_Server_2012_R2基础管理教材教学课件.pptx
- 计算机网络基础与应用(第三版)模块四_配置Windows_Server2012_R2基础网络服务教材教学课件.pptx
- 计算机网络基础与应用(第三版)模块五_使用Windows_Server2012_R2网络应用服务教材教学课件.pptx
- 计算机网络基础与应用(第三版)模块一_计算机网络基础教材教学课件.pptx
- 计算机网络技术项目1_认知计算机网络教材教学课件.ppt
- 计算机网络技术项目2_认知计算机网络体系机构教材教学课件.ppt
文档评论(0)