SocketConnect
SocketConnect[address]
与指定地址的 TCP 主机建立套接口连接,并返回表示连接的 SocketObject.
SocketConnect[address,"protocol"]
使用指定的协议连接到 address 处的主机上.
SocketConnect[socket]
建立到当前会话中打开的本地套接口的连接.
更多信息
- 可能的套接口地址包括:
-
{host,port} 主机名或 IP 地址及端口号 {host,"service"} 主机名或 IP 地址及服务名 "host:port" 主机名或带端口的 IP 地址 port 本地套接口 localhost:port URL["url"] or "url" 完整的 URL(比如 http://www.wolfram.com) - 支持的协议包括:
-
"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 协议类型,则基础套接口为 "Pair" 型套接口.
- 主机名有类似 "www.wolfram.com" 的形式.
- IP 地址可以以 "140.177.0.0" 或 IPAddress[string] 的形式给出,其中 string 是一个 IPv4 或 IPv6 的 IP 地址.
- 当地址被给定为没有指定端口号的 URL 时,从 URL 方案(例如:http 端口 80)中推导出端口号.
- SocketConnect[SocketObject[…]] 可用来建立到 SocketOpen 打开的本地套接口的连接.
- Close 可被用于关闭由 SocketConnect 打开的连接.
范例
打开所有单元关闭所有单元基本范例 (2)
把 ByteArray 转换成字符串:
范围 (1)
应用 (1)
可能存在的问题 (2)
ReadString 只能用于 TCP 套接口,因为 ReadString 要等到套接口被服务器关闭才返回数据. 而服务器从不关闭 ZMQ 套接口,因此数据被无限期地阻断.
ReadString 被无限期地阻断:
当使用 SocketOpen 打开的 TCP 服务器套接口时,在 ReadString 返回数据前必须关闭连接.
ReadString 被无限期地阻断,因为套接口还没有被关闭:
关闭远程套接口,强制 ReadString 返回数据:
文本
Wolfram Research (2015),SocketConnect,Wolfram 语言函数,https://reference.wolfram.com/language/ref/SocketConnect.html (更新于 2017 年).
CMS
Wolfram 语言. 2015. "SocketConnect." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2017. https://reference.wolfram.com/language/ref/SocketConnect.html.
APA
Wolfram 语言. (2015). SocketConnect. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/SocketConnect.html 年