【发布时间】:2018-09-18 00:13:38
【问题描述】:
我将这种模式用于 ZeroMQ 上的服务器:
import time
import zmq
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")
while True:
message = socket.recv()
print("Received request: %s" % message)
time.sleep(1)
socket.send(b"World")
对于客户的这种模式:
import zmq
context = zmq.Context()
print("Connecting to hello world server…")
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")
# Do 10 requests, waiting each time for a response
for request in range(10):
print("Sending request %s …" % request)
socket.send(b"Hello")
# Get the reply.
message = socket.recv()
print("Received reply %s [ %s ]" % (request, message))
如何在一台PC上同时使用server-client和client-server通信?
我们需要创建线程来实现这一点吗?
计算机必须能够发送数据并同时接收和处理来自其他计算机的数据。
P.S.:this可以解决我的问题吗?
【问题讨论】:
-
在该示例中,数百个客户端可以发送请求。服务器将为这些请求中的每一个运行一次它的 req/reply 循环。所以服务器是单线程的,但最终会处理所有请求。您可以并行运行该客户端多次并看到它们都得到响应。
标签: python sockets zeromq pyzmq