Sockets
更多信息
- 以 SocketObject 构建的形式给出返回的套接口.
- spec 的可能形式包括:
-
"Remote" 源自当前会话外的套接口 "Local" 源自当前会话的套接口 "Server" 用 SocketOpen 打开的本地套接口 "Client" 用 SocketConnect 连接的本地套接口 "TCP" 协议为 "TCP" 的套接口 "ZMQ" 协议为 "ZMQ" 的套接口 "WSS" 采用 "WSS" 协议的套接口 "WS" 协议为 "WS" 的套接口 {"ZMQ","type"} 协议为 "ZMQ_type" 套接口 All 所有本地和远程套接口 - Close 关闭套接口连接并释放相关资源.
- 如果套接口是用 SocketOpen 打开的,并且用 SocketConnect 连接到同一个 Wolfram 语言会话,则套接口的两端都将具有一个关联的 SocketObject.
范例
打开所有单元 关闭所有单元基本范例 (1)
范围 (2)
s = SocketOpen[Automatic];
Sockets["Local"]Close[s]用 SocketListen 监听一个套接口,并查看被监听的套接口:
listener = SocketListen[Automatic]Sockets[]还可以用 SocketListener[…] 对象的属性 "Socket" 来查看套接口:
listener["Socket"]Close[listener["Socket"]]DeleteObject[listener]可能存在的问题 (1)
在同一会话中,当用 SocketConnect 连接到服务器套接口时,SocketConnect 返回的套接口与服务器套接口的 "ConnectedClients" 属性返回的套接口对象不同.
server = SocketOpen[Automatic];
client = SocketConnect[server];Sockets[] 只显示你打开的连接,因为它们都是本地的:
MemberQ[client]@Sockets[]
MemberQ[server]@Sockets[]还有一个用与 Sockets["Remote"] 中可访问的客户端套接口相同的详细信息创建的额外的远程套接口:
remoteClient = SelectFirst[#["DestinationIPAddress"] === client["DestinationIPAddress"] && #["DestinationPort"] === client["DestinationPort"]&]@Sockets["Remote"]远程套接口的 UUID 与 SocketConnect 返回的本地客户端不匹配:
remoteClient["UUID"] === client["UUID"]这两个套接口是套接口连接的两端;向其中一个写入将发送消息到另一端:
WriteString[remoteClient, "hello from server"];
ByteArrayToString[SocketReadMessage[client]]WriteString[client, "hello from client"];
ByteArrayToString[SocketReadMessage[remoteClient]]Close[server];
MemberQ[remoteClient]@Sockets["Remote"]Close[client]相关指南
-
▪
- 网络编程
文本
Wolfram Research (2017),Sockets,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Sockets.html (更新于 2020 年).
CMS
Wolfram 语言. 2017. "Sockets." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/Sockets.html.
APA
Wolfram 语言. (2017). Sockets. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Sockets.html 年
BibTeX
@misc{reference.wolfram_2026_sockets, author="Wolfram Research", title="{Sockets}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/Sockets.html}", note=[Accessed: 08-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_sockets, organization={Wolfram Research}, title={Sockets}, year={2020}, url={https://reference.wolfram.com/language/ref/Sockets.html}, note=[Accessed: 08-November-2026]}