我有以下任务:
客户端通过 1 个端口(例如 8080)连接到服务器。服务器应该记住它们,并在完成计算后将结果发送给客户端。在该服务器一次又一次地获得一些结果之后将其发送给所有客户端。等等。
服务器如何保持与所有客户端的连接?
我有以下任务:
客户端通过 1 个端口(例如 8080)连接到服务器。服务器应该记住它们,并在完成计算后将结果发送给客户端。在该服务器一次又一次地获得一些结果之后将其发送给所有客户端。等等。
服务器如何保持与所有客户端的连接?
你真的需要维护来自客户端的所有连接吗?我认为,“发布/订阅”消息传递模型将满足所描述的条件。服务器应该“发布”结果,客户端应该“订阅”这个更新。您可以在 zguide 代码示例中找到此类“服务器”的最简单示例:wuserver.cpp
我发现一些代码使用 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()