68应用进程跨越网络的通信68系统调用和应用编程接口.pptVIP

68应用进程跨越网络的通信68系统调用和应用编程接口.ppt

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.8 应用进程跨越网络的通信 6.8.1 系统调用和应用编程接口 大多数操作系统使用系统调用(system call)的机制在应用程序和操作系统之间传递控制权。 对程序员来说,每一个系统调用和一般程序设计中的函数调用非常相似,只是系统调用是将控制权传递给了操作系统。 多个应用进程 使用系统调用的机制 应用编程接口 API (Application Programming Interface) 当某个应用进程启动系统调用时,控制权就从应用进程传递给了系统调用接口。 此接口再将控制权传递给计算机的操作系统。操作系统将此调用转给某个内部过程,并执行所请求的操作。 内部过程一旦执行完毕,控制权就又通过系统调用接口返回给应用进程。 系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口,即应用编程接口 API。 几种应用编程接口 API Berkeley UNIX 操作系统定义了一种 API,它又称为套接字接口(socket interface)。 微软公司在其操作系统中采用了套接字接口 API,形成了一个稍有不同的 API,并称之为 Windows Socket。 ATT 为其 UNIX 系统 V 定义了一种 API,简写为 TLI (Transport Layer Interface)。 应用进程通过套接字接入到网络 套接字的作用 当应用进程需要使用网络进行通信时就发出系统调用,请求操作系统为其创建“套接字”,以便把网络通信所需要的系统资源分配给该应用进程。 操作系统为这些资源的总和用一个叫做套接字描述符的号码来表示,并把此号码返回给应用进程。应用进程所进行的网络操作都必须使用这个号码。 通信完毕后,应用进程通过一个关闭套接字的系统调用通知操作系统回收与该“号码”相关的所有资源。 调用 socket 创建套接字 6.8.2 几种常用的系统调用 1. 连接建立阶段 当套接字被创建后,它的端口号和 IP 地址都是空的,因此应用进程要调用 bind(绑定)来指明套接字的本地地址。在服务器端调用 bind 时就是把熟知端口号和本地IP地址填写到已创建的套接字中。这就叫做把本地地址绑定到套接字。 服务器在调用 bind 后,还必须调用 listen(收听)把套接字设置为被动方式,以便随时接受客户的服务请求。UDP服务器由于只提供无连接服务,不使用 listen 系统调用。 服务器紧接着就调用 accept(接受),以便把远地客户进程发来的连接请求提取出来。系统调用 accept 的一个变量就是要指明从哪一个套接字发起的连接。 6.8.2 几种常用的系统调用 并发方式工作的服务器 系统调用使用顺序的例子 系统调用使用顺序的例子 应用程序 1 应用程序 2 应用程序 n … 由应用程序调用的系统函数 用户地址空间 中的应用程序 系统调用接口 系统地址空间 中的协议软件 包括 TCP/IP 协议软件的操作系统内核 应用进程 TCP 由应用程序 控制 因特网 由操作系统 控制 客户 服务器 套接字 TCP 应用进程 套接字 套接字描述符表 (每一个进程一个描述符) 0: 1: 2: 3: 4: 操作系统 套接字的数据结构 协议族:PF_INET 服务:SOCK_STREAM 本地 IP 地址: 远地 IP 地址: 本地端口: 远地端口: ? ? 接受连接请求 的套接字 M S1 连接 套接字 连接 套接字 连接 套接字 S2 S3 操作系统 服务器 应用进程 从属服务器进程 主服务器进程 (原来的套接字) (新创建的套接字) 服务器端 socket bind listen accept recv send close 客户端 socket recv send close connect 连接建立请求

文档评论(0)

aa15090828118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档