- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四讲 套接字API.ppt2012
* * * * * * * * * * * * * * * * * * * * * * * * * * 《计算机通信与网络编程》 第四讲 套接字API 电子科技大学计算机学院 目录 套接字API介绍 套接字API中的主要系统调用 在程序中使用套接字调用 什么是套接字 TCP/IP协议存在于OS中,网络服务通过OS提供 在OS中增加支持TCP/IP的系统调用——Berkeley套接字 如Socket,Connect,Send,Recv等 1981提出于BSD4.1 UNIX,本书基于BSD4.4 版本 什么是套接字 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 套接字API 来自UNIX系统 Berkeley套接字 ARPA要求伯克利分校将TCP/IP移植到UNIX中 需要创建一个接口,便于应用程序使用这个接口进行网络通信 尽可能使用现有的系统调用,称为BSD UNIX 套接字 成为事实上的标准 指明一个协议接口 考虑:接口是专门针对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协议族:PF_INET TCP/IP的地址族:AF_INET 注意:具有相同的数字值,防止误用 类属地址结构 套接字系统定义的一般化的地址结构 (地址族,该族的端点地址) 套接字的普通C定义结构 struct sockaddr { u_char sa_len; u_short sa_family; char sa_data[14]; }只是很适用于AF_INET族中的地址 TCP/IP的地址定义 struct sockaddr_in { u_char sin_len; u_short sin_family;u_short sin_port; struct in_addr in_addr; char sin_zero[8]; } 类属地址结构 in_addr结构的定义 struct in_addr { u_long s_addr; } 套接字API的主要系统调用 套接字调用分为两组: 主调用:提供下层功能的访问 实用例程:提供帮助 套接字带有参数,允许以多种方式来使用它们。 一些主调用的套接字API int Socket( int domain, int type, int protocol) 功能:创建一个新的套接字,返回套接字描述符 参数说明: domain:域类型,指明使用的
您可能关注的文档
- 第四章《变频器分类选型安装保养》.ppt
- 第四章_运输管理.ppt
- 第四章_采煤工作面矿山压力观测.ppt
- 第四章多彩的光整章教案.doc
- 第四章市场调研策划.ppt
- 第四章_灌溉渠道系统.ppt
- 第四章初级.ppt
- 第四章弹塑性变形验算8.ppt
- 第四章操作系统的基本知识.ppt
- 第四章__水准测量与水准仪.ppt
- 江西省九江市都昌县2023-2024学年八年级上学期11月期中英语试题(含答案).pdf
- 八年级上册历史复习知识点.docx
- 人教部编版五年级上册-第四单元-作文《习作:二十年后的家乡》.精品.ppt
- 六年级数学《分数除法》单元分析.docx
- 新课标人教版小学六年级语文上册课程纲要(2021年整理).doc
- 物理人教版必修第一册第二章匀变速直线运动的研究章节复习共28张课件.pptx
- (名师整理)最湘教版地理8年级上册第1章第4节《中国的民族》精品课件.ppt
- 人音版(五线谱)二年级上册音乐《8小拜年》说课稿.docx
- 2024年初中心理健康工作计划(五篇).doc
- 2024-2025学年小学五年级英语上册期中质量检查试题及答案北京版.docx
文档评论(0)