______________________________________________________________________________
NAME
socket - 打 开 一 个 TCP 网 络 连 接
总 览 SYNOPSIS
socket ?options? host port
socket -server command ?options? port _________________________________________________________________
描 述 DESCRIPTION
这 个 命 令 打 开 一 个 网 络 套 接 口 并 返 回 将 来 可 被 read、 puts 和 flush 命 令 调 用 使 用 一 个 通 道 标 识 符 。 目 前 只 支 持 TCP 网 络 协 议 ; 将 来 的 发 行 可 能 包 括 对 补 充 协 议 的 支 持 。 依 赖 于 是 否 指 定 了 -server 开 关 , 可 以 使 用 socket 命 令 来 打 开 客 户 端 或 服 务 器 端 连 接 。
客 户 端 套 接 口 CLIENT SOCKETS
如 果 未 指 定 -server 选 项 , 则 打 开 一 个 的 连 接 的 客 户 端 并 且 命 令 返 回 一 个 可 被 用 于 读 写 的 通 道 标 识 符 。 Port 和 host 指 定 一 个 要 连 接 到 的 端 口 ; 必 须 有 一 个 服 务 器 接 受 在 这 个 端 口 上 的 连 接 。 Port 是 一 个 整 数 端 口 号 而 host 要 么 是 一 个 域 名 式 样 的 名 字 如 www.sunlabs.com 要 么 是 一 个 数 值 IP 地 址 如 127.0.0.1。 使 用 localhost 来 参 照 在 其 上 调 用 这 个 命 令 的 那 个 主 机 。 在 host 之 前 可 以 提 供 下 列 选 项 指 定 关 于 连 接 的 补 充 信 息 :
-myaddr addr
Addr 给 出 用 于 连 接 的 客 户 端 网 络 接 口 的 域 名 式 样 的 名 字 或 数 值 IP 地 址 。 如 果 客 户 端 机 器 有 多 个 网 络 接 口 的 话 这 个 选 项 会 有 用 处 。 如 果 省 略 了 这 个 选 项 , 则 由 系 统 软 件 选 择 客 户 端 接 口 。
-myport port
Port 指 定 用 于 连 接 的 客 户 端 的 一 个 整 数 端 口 号 。 如 果 省 略 了 这 个 选 项 , 则 由 系 统 软 件 随 机 的 选 择 客 户 端 口 号 。
-async |
-async 选 项 将 导 致 客 户 端 套 接 口 被 异 步 的 连 接 。 这 意 味 着 这 个 套 接 口 将 被 立 即 建 立 , 但 在 到 socket的 调 用 返 回 的 时 候 可 能 仍 未 连 接 到 服 务 器 上 。 在 连 接 尝 试 成 功 或 失 败 之 前 调 用 了 gets 或 flush 的 时 候 , 如 果 套 接 口 在 阻 塞 模 式 下 , 则 将 等 待 直 到 连 接 被 完 成 或 失 败 。 如 果 套 接 口 在 非 阻 塞 模 式 之 下 , 而 在 连 接 尝 试 成 功 或 失 败 之 前 调 用 了 gets 或 flush , 则 操 作 立 即 返 回 , 并 且 在 套 接 口 上 的 fblocked 返 回 1。 |
服 务 器 套 接 口 SERVER SOCKETS
如 果 指 定 了 -server 选 项 , 则 新 套 接 口 将 是 用 port 给 出 的 端 口 的 一 个 服 务 器 。 Tcl 将 自 动 接 受 到 这 个 给 定 端 口 的 连 接 。 对 于 每 个 连 接 Tcl 将 建 立 可 以 用 来 同 客 户 通 信 的 一 个 新 通 道 。 Tcl 接 着 调 用 command 并 加 上 三 个 补 充 参 数 : 新 通 道 的 名 字 , 用 网 络 地 址 表 示 的 客 户 的 主 机 地 址 , 和 客 户 的 端 口 号 。 在 host 之 前 可 以 提 供 下 列 选 项 指 定 关 于 连 接 的 补 充 信 息 :
-myaddr addr
Addr 给 出 用 于 连 接 的 服 务 器 端 网 络 接 口 的 域 名 式 样 的 名 字 或 数 值 IP 地 址 。 如 果 服 务 器 机 器 有 多 个 网 络 接 口 的 话 这 个 选 项 会 有 用 处 。 如 果 省 略 了 这 个 选 项 , 则 服 务 器 套 接 口 被 绑 定 到 特 殊 地 址 INADDR_ANY 上 , 这 样 它 可 以 接 受 来 自 任 何 接 口 的 连 接 。 服 务 器 通 道 不 能 被 用 来 输 入 或 输 出 ; 它 们 唯 一 的 用 处 是 接 受 新 的 客 户 连 接 。 为 每 个 到 来 的 客 户 连 接 建 立 的 通 道 是 为 输 入 和 输 出 而 打 开 的 。 关 闭 服 务 器 通 道 将 关 断 服 务 器 , 这 样 就 不 能 接 受 新 连 接 了 , 不 影 响 现 存 的 连 接 。 服 务 器 套 接 口 依 赖 于 Tcl 事 件 机 制 来 找 出 何 时 打 开 了 新 连 接 。 如 果 应 用 未 进 入 事 件 循 环 , 例 如 通 过 调 用 vwait 命 令 或 调 用 C 过 程 Tcl_DoOneEvent, 则 不 接 受 连 接 。
配 置 选 项 CONFIGURATION OPTIONS
可 以 使 用 fconfigure 命 令 来 查 询 套 接 口 通 道 的 许 多 只 读 配 置 选 项 : │
-error
│ 这 个 选 项
得 到 给 定 套 接
口 的 当 前 错 误
状 态 。 在 你 需
要 确 定 一 个 异
步 连 接 操 │
作 是 否 成 功 的
时 候 这 个 选 项
会 有 用 处 。 如
果 有 一 个 错 误
, 则 返 回 错 误
消 │ 息 。 如
果 没 有 错 误 ,
则 返 回 空 串 。
-sockname 这 个 选 项 返
回 三 个 元 素 的
一 个 列 表 , 分
别 是 这 个 套 接
口 的 地 址 、 主
机 名 和 端 口 号
。 如 果 不 能 计
算 出 这 个 主 机
名 , 第 二 个 元
素 等 同 与 列 表
的 第 一 个 元 素
地 址 。
-peername 服 务 器 套 接
口 不 支 持 这 个
选 项 。 对 于 客
户 和 接 受 的 套
接 口 , 这 个 选
项 返 回 三 个 元
素 的 一 个 列 表
; 它 们 是 地 址
、 主 机 名 字 和
对 等 的 套 接 口
所 连 接 或 绑 定
到 端 口 。 如 果
不 能 计 算 出 这
个 主 机 名 , 第
二 个 元 素 等 同
与 列 表 的 第 一
个 元 素 地 址 。
参 见 SEE ALSO
关 键 字 KEYWORDS
bind, channel, connection, domain name, host, network address, socket, tcp
[中 文 版 维 护 人 ]
寒 蝉 退 士
[中 文 版 最 新 更 新 ]
2001/11/10
《 中 国 Linux 论 坛 man 手 册 页 翻 译 计 划 》 :
跋
本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh