SocketOpen
SocketOpen[port]
打开一个套接口,接受到 localhost:port 的 TCP 连接,并返回一个表示套接口的 SocketObject.
SocketOpen[address]
打开一个套接口,接受到指定本地地址的 TCP 连接.
SocketOpen[address,"protocol"]
打开一个套接口,接受具有指定协议的连接.
SocketOpen[address,{"protocol","type"}]
打开一个套接口,接受指定 protocol 和 type 的连接.
更多信息
- 支持的协议包括:
-
"TCP" 原始的 TCP 流协议 "ZMQ" ZeroMQ 一对一消息协议 {"ZMQ","type"} 指定类型的 ZeroMQ 协议 - 对于 ZMQ 套接口,可能的类型包括:
-
"Pair" 可以与一个对等客户端进行发送/接收的套接口 "Publish" 可将消息发送到所有相连客户端的套接口 "Subscribe" 可接受来自发布套接口的消息的套接口 "Request" 将请求消息发送到相应的答复套接口并接收响应消息的套接口 "Reply" 接受来自相应的 "Request" 套接口的请求消息并发回响应消息的套接口 "Dealer" 与 "Request" 套接口相同,不同的是以循环方式将已发送消息传递给所有相连客户端 "Router" 与 "Reply" 套接口相同,不同的是以公平排队的方式从所有连接的客户端接收消息,并保留路由信息 "Pull" 接收消息的管道拓扑的套接口 "Push" 发送消息的管道拓扑的套接口 "XPublish" 与 "Publish" 相同,但在此套接口上收到的消息是订阅的消息 "XSubscribe" 与 "Subscribe" 相同,但此套接口发送的消息被用作相应 "XPublish" 套接口的订阅消息 "Stream" 用于将 ZMQ 套接口与非 ZMQ TCP 套接口连接在一起的套接口 - 如果没有指定 ZMQ 协议类型,则基础套接口为 {"ZMQ","Pair"} 型套接口.
- SocketOpen 只在你的本地主机上打开套接口.
- SocketOpen 只能使用本地地址. 可能的形式包括:
-
{host,port} 本地主机名或 IP 地址和端口号 {host,"service"} 本地主机名或 IP 地址和服务名称 "host:port" 本地主机名或带有端口的 IP 地址l {host,Automatic} 指定主机上的可用端口 Automatic 本地主机上的可用端口 - 主机名的形式为 "www.wolfram.com".
- 可以用 "140.177.0.0" 或 IPAddress[string] 形式给出 IP 地址,其中 string 为 IPv4 或 IPv6 IP 地址.
- 可用 SocketConnect 来连接由 SocketOpen 打开的套接口. 在一台机器上打开套接口并不能保证另一台机器可以连接到它.
- 对于要建立的连接,协议必须一致,并且不得有防火墙等拦截.
- 可到 ZeroMQ documentation 查阅关于怎样使用不同类型的 ZMQ 套接口的信息.
- Close 可被用于关闭由 SocketOpen 打开的连接.
范例
打开所有单元关闭所有单元基本范例 (2)
范围 (3)
客户端连接到打开的 TCP 套接口后,可以将每个客户端作为具有 "ConnectedClients" 属性的 SocketObject 来访问.
这些套接口也显示为带有 Sockets 的远程套接口:
应用 (1)
使用 SocketOpen 在 Wolfram 语言中制作一个网络服务器.
可能存在的问题 (1)
往由 SocketOpen 返回的套接口上写入只能用于 ZMQ 套接口;对于 TCP 套接口,必须使用 "ConnectedClients" 属性.
文本
Wolfram Research (2017),SocketOpen,Wolfram 语言函数,https://reference.wolfram.com/language/ref/SocketOpen.html (更新于 2020 年).
CMS
Wolfram 语言. 2017. "SocketOpen." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/SocketOpen.html.
APA
Wolfram 语言. (2017). SocketOpen. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/SocketOpen.html 年