- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Socket接口 什么是TCP/IP------本课程的主要部分 TCP/IP如何工作-----TCP/IP软件结构与实现 如何用TCP/IP-------TCP/IP应用程序编程接口 前面说过,TCP/IP标准并不指定应用程序与TCP/IP协议软件的接口,但并不是说没有提供任何指导,首先,它指定了一些必须具有的操作。这包括: 为通信指定本地资源 指定本地和远程通信端点 初始化连接(客户端) 等待连接(服务器端) 发送和接收数据 生成紧急数据 中断通信 …… 在通信结束时释放本地资源 同时,TCP/IP标准还指定了一个概念层接口,它是作为一个阐述如何使用TCP/IP的例子,它包含了一系列过程和函数,标准建议了每个过程和函数所需要的参数及其所执行操作的语义,但没有进一步指定数据表示的细节。 仔细的接口通常由操作系统来定义,只要完成TCP/IP标准中的功能,可以有不同的细节选择。这样不同的操作系统的应用程序编程接口是各不同的。 Berkeley Software Distribution UNIX 的 Socket 接口是广泛使用的 Windows的接口定义Winsock接口 System V的接口定义TLI接口 …… 操作系统提供的应用程序编程接口又分为两类: 直接由操作系统内核提供的系统调用 BSD UNIX socket 在操作系统外以库函数的方式提供的各种可调用函数 Windows socket 一、系统调用 当应用程序要进行系统调用,首先是把控制交到系统调用接口,接口再把控制转到操作系统,由操作系统调用相应的内部进程来执行请求的操作,内部进程完成后,操作系统再通过调用接口把控制权返回应用程序 在TCP/IP协议加入操作系统后,操作系统可以有两种方式来帮助应用程序访问内核的TCP/IP协议 用一种新的系统调用 用通常的I/O调用来访问TCP/IP 完全用第一种方案较少,因为这样要把所有的概念操作都重新设计 采用第二种方案:通过重载通常的I/O调用使得访问协议与通常的I/O一样。 较多采用混合方法:易重载的重载,不易重载的用新函数。 UNIX的基本的I/O函数(一般设备或文件的I/O操作) open:为I/O操作准备设备或文件 close:终止使用前面打开的设备和文件 read:从输入设备或文件获取数据 write:向输出设备或文件传输数据 lseek:移到设备或文件指定的位置 ioctl:控制设备或访问它的软件 一旦打开某个设备或文件,就给它分配一个描述号, int desc; desc=open(“filename”,O_RDWR,0) 在后面,应用程序将使用 desc 来对该文件进行标识并进行读写操作 read(desc,buffer,128) 完成相关操作后,关闭 close (desc) 在BSD UNIX中,使用重载上述的I/O调用来实现对协议的部分访问。同时又一些功能不能重载,需要设计一些新的函数 BSD UNIX Socket 使用混合模式 BSD UNIX Socket 在设计时还考虑到支持多种通信协议,因此,协议族名称往往是一些函数的参数。TCP/IP是一个单一的协议族 BSD UNIX Socket 要求必须使用服务类型来指定操作而不是指定某个协。 以下为几个在完成socket进程通信机制中需要的系统调用(以下以BSD UNIX为例) sockid=socket(family,type,protocol) //创建socket 其中: family:地址族,即协议族 Type:协议服务类型 Protocol:具体协议 sockid:UNIX用于标识该socket的整数, bind(sockid,localaddr,addrlen) //将本地socket地址(本地地址,本地端口)与所创建的scoket号联系起来, 其中localaddr:指向socket地址结构的指针,TCP/IP的socket地址结构: struct sockadd_in{ u_short sin_family; //指明协议族 u-short sin_port; //端口号 struct in_addr sin_addr; //IP地址 char sin_zero[8]; //未用 } addrlen:地址结构的长度(以字节为单位) connect(sockid, destaddr, paddrlen) //用于建立
您可能关注的文档
最近下载
- 基于“双高”背景下高职院校一流师资队伍建设的思考-来源:现代职业教育(高职高专)(第2020030期)-山西教育教辅传媒集团有限责任公司.pdf VIP
- DG_TJ08-2062-2017:住宅工程套内质量验收规范.pdf VIP
- 第二届全国数字化机房安装技能竞赛(电气设备安装工赛项)考试题库资料-下(多选、判断题汇总).pdf
- 北京-威旺M20-产品使用说明书-威旺M20 A12-BJ6443V4SMB-M20使用说明书V22015-01-29.pdf
- 春花秋月何时了G调正谱.pdf
- 急性心肌梗死及PCI术d 护理查房ppt课件.ppt
- 颅内压增高与治疗培训ppt课件.pptx VIP
- 公司关于“精益管理年”宣传工作的方案.pdf VIP
- 钻孔灌注桩试桩技术要求.docx
- 剑桥(join in)版三年级上册英语全册教学课件(配2024年秋改版教材).pptx
文档评论(0)