我有以下任务:
客户端连接到1端口上的服务器(例如8080)。服务器应该记住它们,在完成计算后它应该将结果发送给客户端。在该服务器再次获得一些结果后,再次将其发送给所有客户端。等等。
服务器如何与所有客户端保持联系?
答案 0 :(得分:1)
您确实需要维护客户端的所有连接吗?我认为,“发布/订阅”消息传递模型将满足所描述的条件。服务器应“发布”结果,客户端应“订阅”此更新。您可以在zguide代码示例中找到此类“服务器”的最简单示例:wuserver.cpp
答案 1 :(得分:0)
我发现一些代码使用PUB \ SUB模型并在这里使用NAT http://grokbase.com/t/zeromq/zeromq-dev/112q9934vg/nat-firewall-pub-sub-traversal:
连接的发布者,而不是绑定:
import zmq
ctxt = zmq.Context()
pub = ctxt.socket(zmq.PUB)
pub.connect("tcp://127.0.0.1:2000")
while 1:
pub.send(os.urandom(5))
绑定的订阅者,而不是连接:
import zmq
ctxt = zmq.Context()
sub = ctxt.socket(zmq.SUB)
sub.bind("tcp://127.0.0.1:2000")
while 1:
sub.rcv()