Python 配对/配对通信原型中的PyZMQ用户输入()

Python 配对/配对通信原型中的PyZMQ用户输入(),python,python-3.x,sockets,zeromq,pyzmq,Python,Python 3.x,Sockets,Zeromq,Pyzmq,我正在使用PyZMQ创建一个简单的配对/配对通信原型消息传递模式 PairServer 平淡的 我无法将用户输入从服务器发送到客户端,因为当我按enter键时,没有任何信息传输,但我能够从服务器向客户端发送和接收硬编码消息。当我这样做时,从服务器端接收的消息有时会在客户端接收。我不确定这是否是因为两个脚本都在本地主机上运行,并且套接字中存在冲突 比如说, PairServer 平淡的 输出: Received: random data Counter: 4 Received: Client

我正在使用PyZMQ创建一个简单的配对/配对通信原型消息传递模式

PairServer 平淡的 我无法将用户输入从服务器发送到客户端,因为当我按enter键时,没有任何信息传输,但我能够从服务器向客户端发送和接收硬编码消息。当我这样做时,从服务器端接收的消息有时会在客户端接收。我不确定这是否是因为两个脚本都在本地主机上运行,并且套接字中存在冲突

比如说,

PairServer 平淡的 输出:

Received:  random data
Counter:  4
Received:  Client has received message from server: random data
Received:  random data
Counter:  5
Received:  random data
Counter:  6

如何发送用户输入并防止本地主机上的客户端接收从客户端到服务器收到的消息(如果这是问题的话)?

我已修复了
input()
问题。我意识到Sublime3无法运行输入命令。我已经通过安装SublimeREPL包修复了这个问题

虽然我仍然不清楚为什么有时候从客户端到服务器接收的消息是由本地主机上的客户端接收的

import zmq
import random
import sys
import time

port = "9999"
context = zmq.Context()
socket = context.socket(zmq.PAIR)
print("Connecting socket to port: " + str(port))
socket.connect("tcp://localhost:%s" % port)
print("Connected")

count = 0
response = 1

while True:
    msg = str(socket.recv(), "utf-8")
    print("Received: ",msg)
    count = count + 1
    print("Counter: ",count)

    if count == response:
        data = "Client has received message from server: " + msg
        socket.send_string(data)
        response = response + 1
        time.sleep(2)
data = "random data"
Received:  random data
Counter:  4
Received:  Client has received message from server: random data
Received:  random data
Counter:  5
Received:  random data
Counter:  6