gpt4 book ai didi

python - PAIR/PAIR 通信原型(prototype)中的 PyZMQ 用户输入()

转载 作者:行者123 更新时间:2023-12-03 11:55:05 32 4
gpt4 key购买 nike

我正在使用 PyZMQ 创建一个简单的 PAIR/PAIR 通信原型(prototype)消息传递模式。

配对服务器

import zmq
import random
import sys
import time

port = "9999"
context = zmq.Context()
socket = context.socket(zmq.PAIR)
print("Binding socket to port: " + str(port))
socket.bind("tcp://*:%s" % port)
print("Connection has been established")

while True:
data = input("Enter: ")
socket.send_string(data)
msg = str(socket.recv(), "utf-8")
print("Received: ",msg)
time.sleep(2)

配对客户
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)

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

例如,

配对服务器
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

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

最佳答案

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

虽然我仍然不知道为什么有时从客户端接收到服务器的消息会被 localhost 上的客户端接收。

关于python - PAIR/PAIR 通信原型(prototype)中的 PyZMQ 用户输入(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47898250/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com