我正在制作一个连接多个客户端/邻居的 UDP 程序。没有服务器每个人都在使用相同的程序。我正在尝试使用 localhost 对其进行测试,因此请考虑邻居的所有 IP 和端口都按预期工作。使用 127.0.0.1 作为所有 IP 并连接到不同的端口。所以我的问题是为什么我会收到我在 while 循环之前发送的启动数据但我不能发送任何数据?似乎我对 sys.stdin 做错了什么。
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((HOST, PORT))
going = True
input = [s]
while going:
i,o,e = select.select(input,[],[],)
try :
for x in i:
if x == sys.stdin:
data = sys.stdin.read()
for i in neighbors:
addr = (i[1][0], int(i[1][1]))
s.sendto(data, addr)
else:
msg, addr = s.recvfrom(100)
print msg
except socket.error, msg:
print 'Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
sys.exit()
s.close()