Python 如何在PYZMQ套接字中获取发件人地址?(多客户端,1台服务器)

Python 如何在PYZMQ套接字中获取发件人地址?(多客户端,1台服务器),python,sockets,networking,zeromq,pyzmq,Python,Sockets,Networking,Zeromq,Pyzmq,我创建了一个服务器,它有一个绑定到2个端口的套接字。现在有两个客户端,每个客户端连接到一个端口。服务器从两个客户端接收随机数,但我希望服务器知道从哪个端口接收数据。 我知道这可能是一个相当愚蠢的问题,我对这个问题还不熟悉。请帮忙 服务器 import zmq context = zmq.Context() socket = context.socket(zmq.REP) socket.bind("tcp://*:5555") # A single port is

我创建了一个服务器,它有一个绑定到2个端口的套接字。现在有两个客户端,每个客户端连接到一个端口。服务器从两个客户端接收随机数,但我希望服务器知道从哪个端口接收数据。 我知道这可能是一个相当愚蠢的问题,我对这个问题还不熟悉。请帮忙

服务器

    import zmq
    context = zmq.Context()
    socket = context.socket(zmq.REP)
    socket.bind("tcp://*:5555") # A single port is used for the communication

    socket.bind("tcp://*:5556") # A single port is used for the communication
    #  Wait for next request from client
    while True:

        try:
            message = socket.recv()
            msg = message.decode("utf-8") # decode the bytes to string
            print("Random Integer Received: %s" % msg) # display received string
            #  Send reply back to client
            socket.send_string("Random Integer Received from client 1")
            #sock_add = socket.getaddrinfo()
        except zmq.ZMQError as e:
            print('Unable to receive: %s', e)
客户端1(客户端2的代码与端口地址5556相同)


请帮忙

我只需将您需要的信息(端口)添加到消息本身中,并使用zmq.SNDMORE

比如:

socket.send_string("Port 5555", flags=zmq.SNDMORE)
socket.send_string(str(k)) # or 5556

然后,在服务器端,您可以根据消息本身查看消息来自哪个端口。

我只需将您需要的信息(端口)添加到消息本身中,并使用zmq.SNDMORE

比如:

socket.send_string("Port 5555", flags=zmq.SNDMORE)
socket.send_string(str(k)) # or 5556

然后,在服务器端,您可以根据消息本身查看消息来自哪个端口。

谢谢。是的,我认为这是最后的办法。仍在寻找可以检测发件人端口、地址的通用替代方案。这可能会回答您的问题:我无法/不想找到其他解决方案谢谢。是的,我认为这是最后的办法。仍在寻找可以检测发件人端口、地址的通用替代方案。这可能会回答您的问题:我无法/不想找到其他解决方案