版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、computernessandinternetscomputernetwork和internet课件、部件iv网络应用程序、chapter 27 thesocketinterfacesocket插座接口27.1 introduction theinterfactionbenanapplicationanplocomplicationsoftwaretocommunication.setofprocedusesthatanappl quationsesto tocontaremotedestination,or to transfer data .27.2应用程序编程接口, clientands
2、erverapplicationusetransportprotocolsoftw areisknownasanapplicationprograminterface (API ) . anapicationdefinifiresasetoforstoragethanapplicationcenprofementwheninter theapicationdeterminesthefunctitythatisavailable .27 althowhoghproticontrollocontrationstrallowoperationsystemdesignerstochooseanaapi
3、p, manyhaveadpotedthesocketappiciisavalityformanyoperatingsystems.thesocketappicisoningorationdaspatio system.thes 标准,27.4套接字库,inbsdunixandthesystemderivedfromit,socketfunctionsarepartoftheoperatingsystemitself . 修改他们的基本操作系统vendorscreatedasocketlibrarythatprovidesthesocketapi . assocketriblercanprov
4、itionapplica mthaddeonprovitionnativesockets.when ana插座过程controlpasstoalibrityringoperationsystemtoimplementhesocketfunction .27.5插座o anapplicationcommunicationsthroughasocketsimilartothewaretheapplicationtransfersdatatorfromafile.unixuesapen -读-写- c 补充:1.套接字API、Unix和Unix是共同的交互式多用户时分操作系统。 Unix是AT -1
5、 if error . thesocketprocedure : thesocketprocescreprocessassocesassocetanreturnsanintegerdescriptor.itsessetseleversolythefirstthre theotherfieldsaresetbytheotherfunctionsorbytheoperatingsystem .Argument Protofamily : 1: AF-INET4 IPv4协议2: AF-INET6 IPv6协议3: af -本地UNIX域协议4: af -路由插座, argmenttypespeci
6、fitionthetypeocommunicationthesocketwilluse .TCP/IP插座提供了以下三种插座。 1. SOCK_STREAM (字节流插孔)提供面向连接的可靠的数据传输服务,不出现数据错误,不重复地发送,按发送顺序接收。 内置流量控制,使数据流不溢出的数据被认为是字节流,长度没有限制。 文件传输协议(FTP )使用流式插孔。 2. SOCK_DGRAM (数据报套接字)提供未连接的服务。 分组作为独立的分组被发送,不能提供无错误的保证,有可能数据丢失或重复,接收顺序发生混乱。 网络文件系统(NFS )使用数据报套接字。 3. SOCK_RAW (原始套接字)此接
7、口允许低级别协议,如IP、ICMP直接访问。 常用于验证新协议的实现,或访问由现有服务构成的新设备。 Family和type的组合、argument协议,通常设置为0,除非在原始套接字中使用。 Protocol的常数在头文件中定义,常数名称以ipro_开头。 例如,IPO proto _ igmp proto _ IPO proto _ icmp, the bind procedure thebindobingfonconfingbinsocketoallocksocketaddresbyaddingthelocksocketaddrestoanalreadyscreatedsocket .其
8、调用如果error .套接字是在套接字()上创建的,则存在命名空间(地址族),但没有命名。 bind ()将套接字地址(包括本地主机地址和本地端口地址)与创建的套接字编号相关联。 也就是说,通过命名套接字来指定本地半相关。对于服务器,套接字必须绑定到已知端口。 这是因为客户端知道要开始连接的位置。 为此,必须调用bind ()函数并设置其参数。 设置套接字地址结构的一些常用方法通常由常量INADDR_ANY指定“通配符地址”,该地址在建立套接字通信中起着重要的作用,作为网络应用设计者不清楚地识别套接字地址结构例如,UNIXBSD具有描述套接字地址的数据结构,T C P/I P协议使用SOCKk
9、adaDDr_ino来定义地址,struct sockaddr_in u_char sin_len; /*地址全长*/u_char sin_family; /*地址系列AF_INET*/u_short sin_port; /*协议端口号*/*16位端口号、网络字节顺序*/structin_addr; /*计算机IP地址*/*32位IP地址、网络字节顺序*/char sin_zero8; /*预约,未使用(设为0 ) * /; 其中:Struct in_addr u_long s_addr;/*将IP地址保存为32位二进制文件*/;socket地址结构、网络字节顺序、不同的计算机存储多字节值的顺
10、序不同,有的设备在开头地址存储低字节(小数前),有的设备存储高字节(整数前)。 为了保证数据的正确性,必须在网络协议中指定网络字节的顺序。 TCP/IP协议使用16位整数和32位整数之前的格式。 这些都包含在协议头文件中.整数的前字节顺序、主机上的字节顺序(1)、小数的前字节顺序、主机上的字节顺序(2)、TCP/IP协议族中整数的前字节顺序, listen procedure thelenerformentiscallingdonlybythetcpserver.itcreapsectivesapsecopterforanunconnectedsocket.formentallingthel
11、rustreadrederedbecredeateandthelocalsockesaddressfieldset.thisforminformistheoper pt连接通道套接字.监听连接listen listen ()必须在accept ()之前调用,其调用格式如下: listen(socket,queuesize )参数Socket:表示socket的描述符,它标识本地建立但尚未连接的套接字编号,服务器希望从该套接字接收请求。 Queuesize:表示套接字的请求队列的长度。 用于限制队列请求的数量,当前允许的最大值为5。 Returns 0 if successful; 对-1ife
12、rror.listen ()的调用是服务器接收连接请求的四个步骤中的第三个步骤。 必须调用套接字()来指定流套接字,在调用bind ()并命名后调用,并在accept ()之前调用。 接受theacceptconfinationiscalledbyattconservertoremovethefirestreconneconnectrequreforthecorresponding is empty ), theaccepectputttosleep.acet调用的格式是newsock=accept(s o c k e t,caddress,caddresslen ),参数socket由服务器
13、创建,并绑定到指定的协议端口参数cddderss是类型结构的地址cddderssen,是指向整数的指针。 a c c e p t为此连接创建一个新的套接字,并将此新的套接字描述符返回给调用方。 服务器使用这个新套接字与客户端通信,结束后关闭那个套接字。 同时,服务器的原始套接字在服务器与客户机结束通信后,仍使用该原始套接字接收到下一个客户机的连接。 连接过程连接连接功能单元处理(usuallyaclient )可测试性连接连接功能单元处理(normanactiveconnectoarremoteprocess 调用形式为connect(socket,saddress,saddresslen )
14、 returns0if successful; -1 if error,参数scock是用于客户端计算机上连接的套接字的描述符。参数s a d d r e s s是描述服务器地址和协议端口号(有时将I P地址和协议端口号组合称为终端地址,endpoint address )的SOCKADR结构。 参数s a d d r e s s l e n是以字节形式记述的服务器地址的长度。 四个函数调用、socket ()、bind ()、connect ()和accept ()完成完全五元关系的建立。 socket ()指定五个元组的协议元素,无论其是客户端还是服务器,还是面向连接。 bind ()指定五个元组的本地二进制文件,即本地主机地址和端口号。 这个用法与是否面向连接有关。 在服务器端,无论是否面向连接,都会调用bind ()。在客户端,如果面向连接,可以在connect ()中自动执行,而不调用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国涡流泵行业隐形冠军企业成长路径解码报告
- 2026中国涡流泵产业链上下游协同发展模式研究分析报告
- 2026中国老年健身防跌倒设备市场细分与产品创新方向报告
- 浙江省宁波七中学教育集团2027届化学九上期末质量跟踪监视模拟试题含解析
- 2026人工智能医疗影像诊断市场应用投资前景评估报告
- 2026四川成都都江堰市人力资源和社会保障局招聘机关事业单位编外人员11人模拟试卷(易错题)附答案详解
- 2026广东广州市黄埔区住房和城乡建设局招聘政府初级雇员1人考前冲刺密卷(模拟题)附答案详解
- 2026内蒙古鄂尔多斯市东胜区爱国卫生志愿者招募考前冲刺密卷带答案详解(预热题)
- 2026瑞士钟表制造行业市场供需特点分析及投资评估规划分析研究报告
- 2026云南曲靖市宣威市龙场镇中心幼儿园招聘编制外教学辅助人员3人考前冲刺密卷学生专用附答案详解
- 2026年秋季开学:高中开学第一课为梦想而战
- 凯爱瑞2026上半年餐饮新品情报合集
- 2026年湖北省事业单位联考真题及答案
- 海洋平台智能废弃物处理系统技术创新总结报告
- 2026浙江外国语学院集中招聘劳务派遣制工作人员10人模拟试卷及答案详解【网校专用】
- 高端大圆坯行业供需形势分析及重点企业投资建议研究报告
- 莆田港务集团有限公司招聘2026年笔试试题
- 综合评标专家库专家考试(法律法规)试题及解析(2026年浙江绍兴市)
- 2026-2030中国钡行业市场深度调研及发展趋势与投资前景研究报告
- 注册电气工程师《公共基础》试卷真题及解析(2026年)
- (正式版)DB42∕T 2542-2026 市政管涵基坑工程技术规程
评论
0/150
提交评论