我是新使用ZeroMQ的,所以我正在努力编写一些代码
如果执行以下代码,则不会显示错误:
import zmq.asyncio
ctx = zmq.asyncio.Context()
rcv_socket = ctx.socket(zmq.PULL)
rcv_socket.connect("ipc:///tmp/test")
rcv_socket.bind("ipc:///tmp/test")
但是,如果我尝试使用函数zmq_getsockopt()
,它会失败:
import zmq.asyncio
ctx = zmq.asyncio.Context()
rcv_socket = ctx.socket(zmq.PULL)
rcv_socket.connect("ipc:///tmp/test")
socket_path = rcv_socket.getsockopt(zmq.LAST_ENDPOINT)
rcv_socket.bind("ipc://%s" % socket_path)
然后我得到:
zmq.error.ZMQError: No such file or directory for ipc path "b'ipc:///tmp/test'".
首先,欢迎来到Zero的禅宗艺术
如果您从未使用过ZeroMQ,
在深入了解更多细节之前,您可以先看看"ZeroMQ Principles in less than Five Seconds"
好吧,如果你首先理解游戏规则,而不是从崩溃中学习,你会过得更好(是的,与“想要成为福音传道者的大师”向人群灌输的“仅仅编码”就足够了——这对于做一件严肃的事来说是不够的)
这就是为什么:
如果您阅读了已发布的API,如果您对系统的结构没有任何了解,那么大多数时候您仍然会感到困惑;不了解其内部和外部行为(框架的游戏规则):
这说明了这一点,但在不了解概念的情况下,这一点仍然隐藏在你的视线之外
最好的下一步
如果你真的很认真地想读low-latency{a3},那么在阅读了上面的链接之后,下一步最好的办法就是停止编码,先花点时间阅读和理解Pieter HINTJENS的书《代码连接,第一卷》这本书确实是你进一步阅读的必读之作——绝对值得你花所有的时间&;努力
然后,您将看到为什么这永远不会飞:
然而,这可能(但此处仍然没有处理以NULL结尾的字符
string
),这本身就是一种不良软件设计实践和/或自律的标志,或两者兼而有之):相关问题 更多 >
编程相关推荐