计算机网络第四次作业

上传人:平*** 文档编号:9532881 上传时间:2017-10-03 格式:DOC 页数:9 大小:64.26KB
返回 下载 相关 举报
计算机网络第四次作业_第1页
第1页 / 共9页
计算机网络第四次作业_第2页
第2页 / 共9页
计算机网络第四次作业_第3页
第3页 / 共9页
计算机网络第四次作业_第4页
第4页 / 共9页
计算机网络第四次作业_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《计算机网络第四次作业》由会员分享,可在线阅读,更多相关《计算机网络第四次作业(9页珍藏版)》请在金锄头文库上搜索。

1、计算机网络作业(第四次)欧奇2010142115Socketsocket的英文原义是“孔”或“插座” 。作为 4BDS UNIX的进程通信机制,取后一种意思。通常也称作套接字,用于描述 IP地址和端口,是一个通信链的句柄。在 Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个 Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket 正如其英文原意那样,象一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供 220伏交流电, 有的提供 110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以

2、得到不同的服务。现 象 解 释socket 非 常 类 似 于 电 话 插 座 。 以 一 个 国 家 级 电 话 网 为 例 。 电 话 的 通 话 双方 相 当 于 相 互 通 信 的 2 个 进 程 , 区 号 是 它 的 网 络 地 址 ; 区 内 一 个 单 位 的 交换 机 相 当 于 一 台 主 机 , 主 机 分 配 给 每 个 用 户 的 局 内 号 码 相 当 于 socket 号 。任 何 用 户 在 通 话 之 前 , 首 先 要 占 有 一 部 电 话 机 , 相 当 于 申 请 一 个 socket;同 时 要 知 道 对 方 的 号 码 , 相 当 于 对 方 有

3、 一 个 固 定 的 socket。 然 后 向 对 方 拨号 呼 叫 , 相 当 于 发 出 连 接 请 求 ( 假 如 对 方 不 在 同 一 区 内 , 还 要 拨 对 方 区 号 ,相 当 于 给 出 网 络 地 址 ) 。 对 方 假 如 在 场 并 空 闲 ( 相 当 于 通 信 的 另 一 主 机 开 机且 可 以 接 受 连 接 请 求 ) , 拿 起 电 话 话 筒 , 双 方 就 可 以 正 式 通 话 , 相 当 于 连 接成 功 。 双 方 通 话 的 过 程 , 是 一 方 向 电 话 机 发 出 信 号 和 对 方 从 电 话 机 接 收 信 号的 过 程 , 相

4、当 于 向 socket 发 送 数 据 和 从 socket 接 收 数 据 。 通 话 结 束 后 ,一 方 挂 起 电 话 机 相 当 于 关 闭 socket, 撤 消 连 接 。 电 话 系 统在 电 话 系 统 中 , 一 般 用 户 只 能 感 受 到 本 地 电 话 机 和 对 方 电 话 号 码 的 存 在 ,建 立 通 话 的 过 程 , 话 音 传 输 的 过 程 以 及 整 个 电 话 系 统 的 技 术 细 节 对 他 都 是 不透 明 的 , 这 也 与 socket 机 制 非 常 相 似 。 socket 利 用 网 间 网 通 信 设 施 实 现进 程 通 信

5、 , 但 它 对 通 信 设 施 的 细 节 毫 不 关 心 , 只 要 通 信 设 施 能 提 供 足 够 的 通信 能 力 , 它 就 满 足 了 。 至 此 , 我 们 对 socket 进 行 了 直 观 的 描 述 。 抽 象 出 来 , socket 实 质 上提 供 了 进 程 通 信 的 端 点 。 进 程 通 信 之 前 , 双 方 首 先 必 须 各 自 创 建 一 个 端 点 ,否 则 是 没 有 办 法 建 立 联 系 并 相 互 通 信 的 。 正 如 打 电 话 之 前 , 双 方 必 须 各 自 拥有 一 台 电 话 机 一 样 。 在 网 间 网 内 部 , 每

6、 一 个 socket 用 一 个 半 相 关 描 述 : ( 协 议 , 本 地 地 址 , 本 地 端 口 ) 一 个 完 整 的 socket 有 一 个 本 地 唯 一 的 socket 号 , 由 操 作 系 统 分 配 。 最 重 要 的 是 , socket 是 面 向 客 户 /服 务 器 模 型 而 设 计 的 , 针 对 客 户 和服 务 器 程 序 提 供 不 同 的 socket 系 统 调 用 。 客 户 随 机 申 请 一 个 socket ( 相 当 于 一 个 想 打 电 话 的 人 可 以 在 任 何 一 台 入 网 电 话 上 拨 号 呼 叫 ) , 系 统

7、 为之 分 配 一 个 socket 号 ; 服 务 器 拥 有 全 局 公 认 的 socket , 任 何 客 户 都 可 以向 它 发 出 连 接 请 求 和 信 息 请 求 ( 相 当 于 一 个 被 呼 叫 的 电 话 拥 有 一 个 呼 叫 方 知道 的 电 话 号 码 ) 。 socket 利 用 客 户 /服 务 器 模 式 巧 妙 地 解 决 了 进 程 之 间 建 立 通 信 连 接 的 问题 。 服 务 器 socket 半 相 关 为 全 局 所 公 认 非 常 重 要 。 读 者 不 妨 考 虑 一 下 , 两个 完 全 随 机 的 用 户 进 程 之 间 如 何 建

8、 立 通 信 ? 假 如 通 信 双 方 没 有 任 何 一 方 的socket 固 定 , 就 好 比 打 电 话 的 双 方 彼 此 不 知 道 对 方 的 电 话 号 码 , 要 通 话 是不 可 能 的 。 什 么 是 socket所 谓 socket 通 常 也 称 作 套 接 字 , 应 用 程 序 通 常 通 过 套 接 字 向 网 络发 出 请 求 或 者 应 答 网 络 请 求 。 以 J2SDK-1.3 为 例 , Socket 和ServerSocket 类 库 位 于 java .net 包 中 。 ServerSocket 用 于 服 务 器 端 ,Socket 是

9、建 立 网 络 连 接 时 使 用 的 。 在 连 接 成 功 时 , 应 用 程 序 两 端 都 会 产 生 一个 Socket 实 例 , 操 作 这 个 实 例 , 完 成 所 需 的 会 话 。 对 于 一 个 网 络 连 接 来 说 ,套 接 字 是 平 等 的 , 并 没 有 差 别 , 不 因 为 在 服 务 器 端 或 在 客 户 端 而 产 生 不 同级 别 。 不 管 是 Socket 还 是 ServerSocket 它 们 的 工 作 都 是 通 过 SocketImpl类 及 其 子 类 完 成 的 。 重 要 的 Socket API重 要 的 Socket API

10、: java .net.Socket 继 承 于 java.lang.Object,有 八 个 构 造 器 , 其 方 法 并 不 多 , 下 面 介 绍 使 用 最 频 繁 的 三 个 方 法 , 其 它 方 法大 家 可 以 见 JDK-1.3 文 档 。 Accept 方 法 用 于 产 生 阻 塞 , 直 到 接 受 到 一 个 连 接 , 并 且 返 回 一 个 客户 端 的 Socket 对 象 实 例 。 阻 塞 是 一 个 术 语 , 它 使 程 序 运 行 暂 时 停 留 在 这 个 地 方 , 直 到 一 个 会 话 产 生 , 然 后 程 序 继 续 ; 通 常 阻 塞

11、是 由 循 环 产生 的 。 getInputStream 方 法 获 得 网 络 连 接 输 入 , 同 时 返 回 一 个 InputStream对 象 实 例 。 getOutputStream 方 法 连 接 的 另 一 端 将 得 到 输 入 , 同 时 返 回 一 个OutputStream 对 象 实 例 。 注 意 : 其 中 getInputStream 和getOutputStream 方 法 均 可 能 会 产 生 一 个 IOException, 它 必 须 被 捕 获 , 因为 它 们 返 回 的 流 对 象 , 通 常 都 会 被 另 一 个 流 对 象 使 用 。

12、 SOCKET 连 接 过 程根 据 连 接 启 动 的 方 式 以 及 本 地 套 接 字 要 连 接 的 目 标 , 套 接 字 之 间 的 连 接过 程 可 以 分 为 三 个 步 骤 : 服 务 器 监 听 , 客 户 端 请 求 , 连 接 确 认 。 服 务 器 监 听 : 是 服 务 器 端 套 接 字 并 不 定 位 具 体 的 客 户 端 套 接 字 , 而 是 处于 等 待 连 接 的 状 态 , 实 时 监 控 网 络 状 态 。 客 户 端 请 求 : 是 指 由 客 户 端 的 套 接 字 提 出 连 接 请 求 , 要 连 接 的 目 标 是 服务 器 端 的 套

13、接 字 。 为 此 , 客 户 端 的 套 接 字 必 须 首 先 描 述 它 要 连 接 的 服 务 器 的套 接 字 , 指 出 服 务 器 端 套 接 字 的 地 址 和 端 口 号 , 然 后 就 向 服 务 器 端 套 接 字 提出 连 接 请 求 。 连 接 确 认 : 是 指 当 服 务 器 端 套 接 字 监 听 到 或 者 说 接 收 到 客 户 端 套 接 字 的连 接 请 求 , 它 就 响 应 客 户 端 套 接 字 的 请 求 , 建 立 一 个 新 的 线 程 , 把 服 务 器 端套 接 字 的 描 述 发 给 客 户 端 , 一 旦 客 户 端 确 认 了 此

14、描 述 , 连 接 就 建 立 好 了 。 而服 务 器 端 套 接 字 继 续 处 于 监 听 状 态 , 继 续 接 收 其 他 客 户 端 套 接 字 的 连 接 请 求 。如 何 开 发 一 个 Server-Client 模 型 的 程 序开 发 原 理 : 服 务 器 , 使 用 ServerSocket 监 听 指 定 的 端 口 , 端 口 可 以 随 意 指 定 ( 由于 1024 以 下 的 端 口 通 常 属 于 保 留 端 口 , 在 一 些 操 作 系 统 中 不 可 以 随 意 使 用 ,所 以 建 议 使 用 大 于 1024 的 端 口 ) , 等 待 客 户

15、连 接 请 求 , 客 户 连 接 后 , 会 话 产生 ; 在 完 成 会 话 后 , 关 闭 连 接 。 客 户 端 , 使 用 Socket 对 网 络 上 某 一 个 服 务 器 的 某 一 个 端 口 发 出 连 接 请求 , 一 旦 连 接 成 功 , 打 开 会 话 ; 会 话 完 成 后 , 关 闭 Socket。 客 户 端 不 需 要指 定 打 开 的 端 口 , 通 常 临 时 的 、 动 态 的 分 配 一 个 1024 以 上 的 端 口 。 Socket 接 口 是 TCP/IP 网 络 的 API, Socket 接 口 定 义 了 许 多 函 数 或 例 程 ,

16、程 序 员 可 以 用 它 们 来 开 发 TCP/IP 网 络 上 的 应 用 程 序 。 要 学 Internet 上 的TCP/IP 网 络 编 程 , 必 须 理 解 Socket 接 口 。 Socket 接 口 设 计 者 最 先 是 将 接口 放 在 Unix 操 作 系 统 里 面 的 。 如 果 了 解 Unix 系 统 的 输 入 和 输 出 的 话 , 就很 容 易 了 解 Socket 了 。 网 络 的 Socket 数 据 传 输 是 一 种 特 殊 的I/O, Socket 也 是 一 种 文 件 描 述 符 。 Socket 也 具 有 一 个 类 似 于 打 开 文 件 的函 数 调 用 Socket( ) , 该 函 数 返 回 一 个 整 型 的 Socket 描 述 符 , 随 后 的 连 接建 立 、 数 据 传 输 等 操 作 都 是 通 过 该 Socket 实 现 的 。 常 用 的 Socket 类 型有 两 种 : 流 式 Socket(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号