Socket 功能 与 套接字三种类型.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Socket 功能 与 套接字三种类型

1 Socket 的功能 和 套接字的三种类型 Socket 的功能 6.2.2 ???? Socket 的英文原意就是“孔”或“插座”,现在,作为 BSD UNIX 的进程通讯机制, 取其后一种意义。日常生活中常见的插座,有的是信号插座,有的是电源插座,有的可以 接受信号(或能量)?????? ,有的可以发送信号(或能量)。假如电话线与电话机之间安放一个插 座(相当于二者之间的接口,这一部分装置物理上是存在的)则 Socket 非常相似于电话插 座。 ???? 将电话系统与面向连接的 Socket 机制相比,有着惊人相似的地方。以一个国家级的电 话网为例。电话的通话双方相当于相互通信的两个进程;通话双方所在的地区(享有一个 全局唯一的区号)相当于一个网络,区号是它的网络地址;区内的一个单位的交换机相当 于一台主机,主机分配给每个用户的局内号码相当于 Socket 号(下面将谈到)????? 。 ????????????????? ??????????????????? 图 6-1 socket 接口示意图 任何用户在通话之前,首先要占有一部电话机,相当于申请一个 Socket 号;同时要知 道对方的电话号码,相当于对方有一个 Socket。然后向对方拨号呼叫,相当于发出连接请 求(假如对方不在同一区内,还要拨对方区号,相当于给出网络地址)?????????????? 。对方假如在场并 空闲(相当于通信的另一主机开机且可以接受连接请求)?????????????? ,拿起电话话筒,双方就可以正 式通话,相当于连接成功。双方通话的过程,是向电话机发出信号和从电话机接受信号的 过程,相当于向 Socket 发送数据和从 Socket 接受数据。通话结束后,一方挂起电话机, 相当于关闭 Socket,撤消连接。 在电话系统中,一般用户只能感受到本地电话机和对方电话号码的存在,建立通话的 过程、话音传输的过程以及整个电话系统的技术细节对它都是透明的,这也与 Socket 机制 非常相似。Socket 利用网间网通信设施实现进程通信,但它对通信设施的细节毫不关心, 只要通信设施能提供足够的通信能力,它就满足了。 至此,我们对 Socket 进行了直观的描述。抽象出来,Socket 实质上提供了进程通信的 端点。进程通信之前,双方首先必须各自创建一个端点,否则是没有办法建立联系并相互 通信的。正如打电话之前,双方必须各自拥有一台电话机一样。 每一个 Socket 都用一个半相关描述: ???????? {协议,本地地址,本地端口} 一个完整的 Socket 则用一个相关描述 ???????? {协议,本地地址,本地端口,远程地址,远程端口} 每一个 Socket 有一个本地的唯一 Socket 号,由操作系统分配。 最重要的是,Socket 是面向客户-服务器模型而设计的,针对客户和服务器程序提供 不同的 Socket 系统调用。客户随机申请一个 Socket 号(相当于一个想打电话的人可以在 ??????????????????????????????? 任何一台入网的电话上拨叫呼叫)??????????????? ;服务器拥有全局公认的 Socket,任何客户都可以向它 发出连接请求和信息请求(相当于一个被呼叫的电话拥有一个呼叫方知道的电话号码)????????????????????????? 。 ???? Socket 利用客户— 服务器模式巧妙的解决了进程之间建立通信连接的问题。服务器 Socket 为全局所公认非常重要。两个完全随机的用户进程之间,因为没有任何一方的 Socket 是固定的,就像打电话却不知道别人的电话号码,要通话是不可能的。 ??????? 套接字的三种类型 6.2.3 ???? 套接字有三种类型:流式套接字???????????? (SOCK_STREAM),数据报套接字 (SOCK_DGRAM) 及原始套接字。 ???? 1.流式套接字(SOCK_STREAM) ???? 流式的套接字可以提供可靠的、面向连接的通讯流。如果你通过流式套接字发送了顺 序的数据:???? “1”“2” ????????????? 、????? 。那么数据到达远程时候的顺序也是“1”“2”????? 、??? 。 ???? 流式套接字可以做什么呢?你听说过 Telnet 应用程序吗?听过?哦,最常用的 BBS 服 务,以及系统的远程登陆都是通过 Telnet 协议连接的。Telnet 就是一个流式连接。你是否 希望你在 Telnet 应用程序上输入的字符(或汉字)在到达远程应用程序的时候是以你输入 的顺序到达的?答案应该是肯定的吧。还有 WWW 浏览器,它使用的 HTTP 协议也是通过 流式套接字来获取网页的。事实上

文档评论(0)

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

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

1亿VIP精品文档

相关文档