霜满花影 2021-04-28 01:49 采纳率: 0%
浏览 8

ZeroMQ Req/Res服务端和客户端不在同一个网段能发送接收请求么?如何设置?比如客户端端在1

ZeroMQ Req/Res服务端和客户端不在同一个网段能发送接收请求么?如何设置?比如客户端端在198.168.22.3,服务端在10.1.56.36,两者可以ping通。
  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-07-14 20:16
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    ZeroMQ的Req/Res模式可以在不同网段的客户端和服务端之间进行通信,只要能够确保网络连接通畅即可。需要设置的是Socket的绑定和连接地址。 在ZeroMQ中,服务端需要绑定(bind)一个地址,而客户端需要连接(connect)到这个地址。可以通过设置Socket的地址来进行通信。 下面是一个简单的示例代码: 服务端代码:
    import zmq
    context = zmq.Context()
    socket = context.socket(zmq.REP)
    socket.bind("tcp://10.1.56.36:5555")
    while True:
        message = socket.recv()
        print("Received request: %s" % message)
        
        # 处理请求
        
        socket.send(b"Response from server")
    

    客户端代码:

    import zmq
    context = zmq.Context()
    socket = context.socket(zmq.REQ)
    socket.connect("tcp://10.1.56.36:5555")
    socket.send(b"Request from client")
    response = socket.recv()
    print("Received response: %s" % response)
    

    在上面的例子中,服务端通过socket.bind("tcp://10.1.56.36:5555")绑定地址10.1.56.36,端口5555;客户端通过socket.connect("tcp://10.1.56.36:5555")连接到服务端。 只要两者之间能够进行网络通信,即使在不同网段也可以正常发送和接收请求。

    评论

报告相同问题?