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 协议也是通过 流式套接字来获取网页的。事实上,如果你 Telnet 到一个 Web Site 的 80 端口上,然后输 入 “GET 网页路径名”然后按两下回车 或者是两下 Ctrl+回车 然后你就得到了“网页 路径名”所代表的网页! 流式套接字是怎样保证这种应用层次上的数据传输质量呢?它使用了 TCP The Transmission Control Protocol 协议 可以参考 RFC-793 来得到 TCP 的细节 。TCP 保证 了你的数据传输是正确的,并且是顺序的。TCP 是经常出现的 TCP/IP 中的前半部分。IP 代表 Internet Pro

文档评论(0)

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

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

1亿VIP精品文档

相关文档