______________________________________________________________________________
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