- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章:应用层--2
8.2 网络进程通信 8.2.1网络进程通信需要解决的问题 8.2.2 Socket套接字编程接口 8.2 网络进程通信 一、进程: 它是一个程序对某个数据集的执行过程,是 一个动态的概念 二、单机进程通信与网络进程通信差异 网络中分布式进程通信: 主机高度自治,对其他主机状态一无所知 三、网络分布式进程通信需要解决 进程命名与寻址方法 多重协议的识别 进程间相互作用的模式 1.进程命名与寻址方法 进程标识的问题 熟知端口号举例 端口号是一个16位无符号整数,范围是0-65535, 用以区别主机上的每一个应用进程; 服务器进程一般使用熟知端口号, 端口号0-1023预 留给熟知的服务 2.多重协议的识别选择 传输层有多种协议,网络中两台主机之间进行进 程通信,必须约定好传输层的协议类型; 网络环境中惟一的标识两个不同主机上进程之间的通信需要一个五元组来表示: (协议,本地IP地址,本地端口号,远程IP地址,远程端口号) 3.网络应用进程间相互作用的模式 套接字编程接口包括以下主要API: 创建socket:socket( ) 指定本地地址:bind( ) 建立socket连接:connect( ) 接收连接请求:listen( ) 、accept( ) 发送数据:send( ) sendto( ) 接收数据:recv( ) recvfrom( ) 1. 创建套接字-socket( ) 创建套接字socket,其调用格式如下: sockid=socket(af,type,protocol) af(Address Family)—主机的地址类型,AF_INET 表示使用TCP/IP地址; type—通信服务类型,sock_STREAM表示面向连接的字符流通信方式,而sock_DGRAM表示无连接的数据报方式等; protocol—本socket所希望使用的协议; 返回值sockid是一个整数,即socket号(文件描述符),创建一个socket实际上是向系统申请属于本进程的一个特殊ID,应用进程将通过该socket ID来进行通信。 2. 指定本地地址bind( ) bind( )是将本地socket地址(包括本地主机地址和本地端口等)与所创建的socket号联系起来,bind( )的调用格式为: bind(sockid,localaddr,addrlen ) sockid,已获得的socket号。 localaddr,本地socket地址:包括本地主机地址和端口号该参数是一个指向socket地址结构的指针 addrlen,本地socket地址长度,表示以字节为单位的本地socket地址结构的长度。 3. 请求建立连接connect( ) 面向连接通信的客户端进程通过connect( ) 调用主动请求建立与服务器的连接, connect( )要等到TCP连接建立后才返回。 connect() 的调用格式为connect(sockid,destaddr,addrlen ) sockid,本地socket号。 destaddr,是一个指向服务器的socket地址结构(包括IP地址、端口等信息)的指针 addr1en,信宿方socket地址长度 当连接建立成功后,就可以通过sockid标识的连接号进行通信, sockid包含了五元组信息。 4. 接收连接建立请求-listen( )和accept( ) 面向连接的服务器进程一般在某个众所周知的端口上接收客户进程的连接建立请求。服务器进程平时处于睡眠状态,一旦有连接建立请求来到时,服务器进程被唤醒并处理客户进程的连接建立请求。 面向连接的服务器进程通过listen( )和accept( ) 系统调用来接收并处理客户进程的连接建立请求。 1isten( )系统调用将服务器进程设置为侦听或服务等待状态; accept( )系统调用用于服务器进程受理客户进程的连接建立请求。 1isten( )系统调用 listen( ) 使服务器端的服务进程处于连接侦听或等待状态,如果有客户端建连请求到来,则把它放入到等待队列中排队等待处理,其调用格式为: listen(sockid,quelen) 其中: sockid,本地socket号,服务器进程在此socket地址上接收连接建立请求。 quelen,服务端连接建立请求队列长度。listen( )系统调用以此参数限制连接请求的排队个数,通常允许的连接请求排队长度最大值为5。 accept( )系统调用 accept( )用于服务器进程处理客户进程的连接建立请求,当等待队列没有连接请求时,服务进程处于睡眠状态,否则,响应并处理建连请求,其
您可能关注的文档
- 甲级单位编制无纺布鞋中底项目可行性报告(立项可研+贷款+用地+2013案例)设计方案.docx
- 甲级单位编制有机硅橡胶项目可行性报告(立项可研+贷款+用地+2013案例)设计方案.docx
- 甲级单位编制望远镜收音机项目可行性报告(立项可研+贷款+用地+2013案例)设计方案.docx
- 甲级单位编制无铅锡线项目可行性报告(立项可研+贷款+用地+2013案例)设计方案.docx
- 甲级单位编制有机蒸汽检测仪项目可行性报告(立项可研+贷款+用地+2013案例)设计方案.docx
- 甲级单位编制无绳电话项目可行性报告(立项可研+贷款+用地+2013案例)设计方案.docx
- 甲级单位编制涡流传感器项目可行性报告(立项可研+贷款+用地+2013案例)设计方案.docx
- 甲级单位编制无纺布手术衣项目可行性报告(立项可研+贷款+用地+2013案例)设计方案.docx
- 甲级单位编制特殊焊机项目可行性报告(立项可研+贷款+用地+2013案例)设计方案.docx
- 甲级单位编制直流焊机项目可行性报告(立项可研+贷款+用地+2013案例)设计方案.docx
最近下载
- 中国教育史配套习题及答案.doc VIP
- 奥沙利铂超敏反应全程管理中国专家共识(2024年版)解读.pptx VIP
- 自考《小学课堂教学案例评析》阶段测验及答案(11篇).docx VIP
- 广东省深圳市2025年6月中考第三次适应性联合测试语文试题(含答案).pdf VIP
- (新外研版)英语九年级上册Module 6课例分析 课件.pdf
- 自考《小学课堂教学案例评析》阶段测验及答案 (1).pdf VIP
- 7自考《小学课堂教学案例评析》阶段测验及答案.pdf VIP
- 《发展对象入党答辩》PPT模板.pptx VIP
- 《黔之驴》教学实录.doc VIP
- 工业机器人编程与调试(ABB)教学课件1-1.pptx VIP
文档评论(0)