Provided by: manpages-zh_1.5.2-1_all bug

NAME

       socket - 打開一個 TCP 網路連接

總覽 SYNOPSIS

       socket ?options? host port

       socket -server command ?options? port
_________________________________________________________________

描述 DESCRIPTION

       這個命令打開一個網路套接口並返回將來可被           readputsflush
       命令調用使用一個通道標識符。目前只支持                                                 TCP
       網路協議;將來的發行可能包括對補充協議的支持。依賴於是否指定了    -server   開關,可以使用
       socket 命令來打開客戶端或伺服器端連接。

客戶端套接口 CLIENT SOCKETS

       如果未指定                                                                         -server
       選項,則打開一個的連接的客戶端並且命令返回一個可被用於讀寫的通道標識符。   Porthost
       指定一個要連接到的端口;必須有一個伺服器接受在這個端口上的連接。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

       flush(n), open(n), read(n)

關鍵字 KEYWORDS

       bind, channel, connection, domain name, host, network address, socket, tcp

[中文版維護人]

       寒蟬退士

[中文版最新更新]

       2001/11/10

《中國 Linux 論壇 man 手冊頁翻譯計劃》:

       http://cmpp.linuxforum.net