socket(3tcl) | Tcl Built-In Commands | socket(3tcl) |
socket - 打開一個 TCP 網絡連接
socket ?options? host port
socket -server command ?options? port
這個命令打開一個網絡套接口並返回將來可被 read、puts 和 flush 命令調用使用一個通道標識符。目前只支持 TCP 網絡協議;將來的發行可能包括對補充協議的支持。依賴於是否指定了 -server 開關,可以使用 socket 命令來打開客戶端或服務器端連接。
如果未指定 -server 選項,則打開一個的連接的客戶端並且命令返回一個可被用於讀寫的通道標識符。 Port 和 host 指定一個要連接到的端口;必須有一個服務器接受在這個端口上的連接。Port 是一個整數端口號而 host 要麼是一個域名式樣的名字如 www.sunlabs.com 要麼是一個數值 IP 地址如127.0.0.1。 使用 localhost 來參照在其上調用這個命令的那個主機。
在 host 之前可以提供下列選項指定關於連接的補充信息:
如果指定了 -server 選項,則新套接口將是用 port 給出的端口的一個服務器。Tcl 將自動接受到這個給定端口的連接。對於每個連接 Tcl 將建立可以用來同客戶通信的一個新通道。Tcl 接着調用 command 並加上三個補充參數: 新通道的名字,用網絡地址表示的客戶的主機地址,和客戶的端口號。
在 host 之前可以提供下列選項指定關於連接的補充信息:
服務器通道不能被用來輸入或輸出;它們唯一的用處是接受新的客戶連接。爲每個到來的客戶連接建立的通道是爲輸入和輸出而打開的。關閉服務器通道將關斷服務器,這樣就不能接受新連接了,不影響現存的連接。
服務器套接口依賴於 Tcl 事件機制來找出何時打開了新連接。如果應用未進入事件循環,例如通過調用 vwait 命令或調用 C 過程 Tcl_DoOneEvent,則不接受連接。
可以使用 fconfigure 命令來查詢套接口通道的許多隻讀配置選項:
flush(n), open(n), read(n)
bind, channel, connection, domain name, host, network address, socket, tcp
寒蟬退士
2001/11/10
http://cmpp.linuxforum.net
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
8.0 | Tcl |