




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 Protocol(因特网协议,参考 RFC-791)IP 只处理网络路由。 图 6-2 面向连接的 socket 的工作流程 2.数据报套接字(SOCK_DGRAM) 数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输, 是无序 的,并且不保证可靠,无差错。原始套接字允许对低层协议如 IP 或 ICMP 直接 访问,主要 用于新的网络协议实现的测试等。 数据报套接字(Datagram Sockets)怎样呢?为什么它叫做“无连接”?应该 怎样处理 它们呢?为什么它们是不可靠的?好的,这里有一些事实: l 如果你发送了一个数据报,它可能不会到达。 l 它可能会以不同的顺序到达。 l 如果它到达了,它包含的数据中可能存在错误。 数据报套接字也使用 IP,但是它不使用 TCP,它使用使用者数据报协议 UDP(User Datagram Protocol 可以参考 RFC 768) 为什么说它们是“无连接”的呢?因为它(UDP)不像流式套接字那样维护一 个打开 的连接,你只需要把数据打成一个包,把远程的 IP 贴上去,然后把这个包发送出 去。这个 过程是不需要建立连接的。UDP 的应用例子有: tftp, bootp 等。 那么,数据包既然会丢失,怎样能保证程序能够正常工作呢?事实上,每个使 用 UDP 的程序都要有自己的对数据进行确认的协议。比如, TFTP 协议定义了对于每一 个发送出 去的数据包,远程在接受到之后都要回送一个数据包告诉本地程序: “我已经拿到了!(一 ” 个 “ACK” 包) 。如果数据包发的送者在 5 秒内没有的得到回应,它就会 重新发送这个 数据包直到数据包接受者回送了 “ACK” 信号。这些知识对编写一个使用 UDP 协议的 程序员来说是非常必要的。 无连接服务器一般都是面向事务处理的,一个请求一个应答就完成了客户 程序与服务 程序之间的相互作用。若使用无连接的套接字编程,程序的流程可以用图 6-3 表示。 图 6-3 无连接的 socket 工作流程 面向连接服务器处理的请求往往比较复杂,不是一来一去的请求应答所能 解决的,而 且往往是并发服务器。使用面向连接的套接字编程,可以通过图 6-2 来表示。 套接字工作过程如下:服务器首先启动,通过调用 socket()建立一个套接 字,然后调用 bind()将该套接字和本地网络地址联系在一起,再调用 listen()使套接字做好 侦听的准备, 并规定它的请求队列的长度,之后就调用 accept()来接收连
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省资阳市2025年初三第二轮复习测试卷化学试题(四)含解析
- 重庆化工职业学院《化工设计软件》2023-2024学年第二学期期末试卷
- 山东省沂水四十里中学2025年初三5月学业能力调研化学试题试卷含解析
- 山西省永济市2025年初三下学期第9周周考化学试题含解析
- 绵阳职业技术学院《键盘技巧三》2023-2024学年第一学期期末试卷
- 西南林业大学《书法篆刻基础》2023-2024学年第二学期期末试卷
- 酒泉市安西县2025年小升初考试数学试卷含解析
- 江西工业工程职业技术学院《SAP企业培训》2023-2024学年第二学期期末试卷
- 南开大学《高等数学A1》2023-2024学年第二学期期末试卷
- 武昌工学院《知识产权专业英语》2023-2024学年第二学期期末试卷
- 施工负责人题库2020
- 内燃机车柴油机冷却水系统-直流传动发内燃机车柴油机冷却水系统
- 数据驱动的精细化运营管理
- 2024年福建厦门大学后勤集团招聘笔试参考题库含答案解析
- 预制管桩施工方案
- 危重症患者的心理护理课件
- 胸腹主动脉瘤切除人工血管置换术术后健康饮食宣教
- 零星土建安全施工方案
- 中建商业楼幕墙专项施工方案
- 临床诊疗指南癫痫病学分册
- 制作沙包(教案)-五年级劳动版
评论
0/150
提交评论