- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
套接字API调用
套接字API调用 创建套接字 result= socket (pf, type, protocol) pf为协议族(protocol family)。套接字并不局限于使用TCP/IP,而是可以支持各种协议族。当前的协议族包括TCP/IP互联网(PF_INET)、Xerox公司的PUP互联网(PF_PUP)、Apple公司的AppleTalk网络(PF_APPLETALK)和UNIX文件系统(PF_UNIX)。 type为制定所需的通信类型。包括可靠数据流交付服务(SOCK_STREAM)和无连接数据报交付服务(SOCK_DGRAM)和允许有特权的用户访问网络底层协议和网络接口的原始类型(SOCK_RAW)。 套接字的继承和终止 close(socket) 操作系统创建子进程时,子进程将继承父进程打开的套接字。 父子进程拥有对该套接字同样的访问权,并且能共享访问套接字。 系统对每个套接字的引用进行计数,每增加一个进程访问套接字,则计数加1。 当进程完成对套接字的使用时,对套接字的使用调用close进行关闭。 close调用将减少套接字的引用计数,并在计数值为0时删除套接字。 绑定本地地址 bind(socket, localaddr, addrlen ) 套接字创建时未关联本地或目的地址 套接字与网络地址绑定的机制 不同协议可能具有不同含义。对TCP/IP协议,绑定的内容包括IP地址和端口号。 地址绑定结构 IP地址绑定结构 连接到目的地址 connect(socket, destaddr, addrlen) 初始创建的套接字处于一种未连接的状态,即套接字未与任何外地目的地址关联。 connect将套接字关联到一个永久的目的地址,从而让套接字进入已连接状态。 应用程序在进行可靠数据流传输时,必须调用connect建立一个连接。 参数socket为绑定的套接字描述符。destaddr为目的地址的结构。参数addrlen是指定地址长度的整数,以八位组为单位。 发送数据 在套接字建立之后,应用程序就可以通过系统调用使用套接字传输数据。 五个系统调用:send,sendto,sendmsg,write和writev。 其中send、write和writev只用于已经建立连接的套接字,它们在调用时,不需要,也不允许指定目的地址。 套接字接收数据 与五个传输数据的系统调用相对应 五个系统调用: recv,recvfrom,recvmsg ,read和readv。 获得本地和远程套接字地址 进程可以调用getpeername来获得套接字连接的目的方的地址,调用格式如下: getpeername(socket, destaddr, addrlen) 进程也可以通过getsockname获得套接字连接的本地地址,调用格式如下: getsockname(socket, localaddr, addrlen) 获得并设置套接字选项 应用程序可以控制套接字的机制。比如设置超时参数,控制缓冲区空间的分配,控制是否允许发送广播,或者控制带外数据的处理等。 应用程序可以通过setsockopt设置相应的选项,也可以通过getsockopt获取当前的设置情况。 设置调用的格式如下: setsockopt(socket, level, optionid, optionval, length) 获取调用的格式如下: getsockopt(socket, level, optionid, optionval, length) 指明服务器的队列长度 listen( socket, qlength) 服务器进程在处理一个请求的时候需要消耗一些时间,在此期间可能系统又有新的请求到来。 为了避免协议拒绝或丢弃传入的请求,服务器必须告诉底层协议软件,它希望让来不及处理的请求排队等待。 如果系统请求的队列已满,额外的请求将被丢弃。 该系统调用仅用于可靠数据流交付服务的套接字。 服务器如何接收连接 newsock=accept(socket, addr, addrlen) 服务器进程使用系统调用socket、bind和listen创建一个套接字,将它绑定到熟知端口,并指定连接请求的排队长度。但是套接字并没有连接到外部目的地址,而是处于一种等待状态,准备接收来自任意客户的连接请求。 使用系统调用accept进入阻塞,直到到达一个连接请求。 socket为等待连接的套接字描述符。参数addr是存放地址信息的结构指针,参数addrlen是一个整数的指针,返回地址的长度,newsock为新的套接字描述符。 原来的套接字仍然保持等待状态,以便继续接收其他的请求。 本节结束 * * 地址族 地址八位组0-1 地址八位组2-5 地址
您可能关注的文档
- 在社群网站-岭东科技大学数位学习平台.ppt
- 基于OPENVMS的中间件之一邮箱管理-MailboxManager.doc
- 培训-体系结构.ppt
- 基于UML时序图的网络视频监控系统.doc
- 基于MSP430的LED智能控制系统设计-革新科技.doc
- 基于公用型集成化零担专线运输管理信息系统研究-物流产业大数据平台.doc
- 培训讲义天阗6.0入侵检测系统入侵检测系统原理天阗6.0入侵检测与管理.ppt
- 基于IEC61850标准的直流数字化电能表分层信息与通信-电测与仪表.doc
- 基于嵌入式Linux的车辆稽查系统设计书.doc.doc
- 基于WinSock的邮件系统.ppt.ppt
- 2024年度民主生活会个人对照检查材料(带头增强党性、严守纪律、砥砺作风方面)+带头增强党性、严守纪律、砥砺作风方面存在的主要问题.doc
- 2024-2025年民主生活会、组织生活会的批评与自我批评+民主生活会会前集中学习研讨体会.doc
- 市委书记在2025年中秋国庆节前廉政谈话会上的讲话在2025年中秋国庆节前廉政谈话.doc
- 2024年度民主生活会存在问题及不足之处+2024年度民主生活会“向下”批评意见清单.doc
- 2篇 2024年民主生活会个人对照检查发言材料(四个带头).doc
- 范文 在2025年春节前廉政谈话暨春节期间重点工作部署会议上的讲话.doc
- 2024-2025年关于意识形态专题党课讲稿、宣讲报告.doc
- 区长、局一把手2024年个人政治画像报领导干部政治画像自评材料.doc
- 理论武装方面存在问题及整改措施+第二批主题教育六个方面问题查摆、原因分析、整改措施.docx
- 2024年度民主生活会领导班子对照检查材料(四个带头)+带头增强党性、严守纪律、砥砺作风方面存在的主要问题.doc
文档评论(0)