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 |