【发布时间】:2019-06-28 09:31:45
【问题描述】:
我目前正在尝试制作一个 Python 程序,其中连接到不同服务器的两台计算机可以相互发送消息。 以下是我的代码:
服务器.py:
import sys
import socket
def main():
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind(('', 11111))
s.listen(1)
while True:
(conn, addr) = s.accept()
while True:
received = conn.recv(1024)
if received == '':
break
else:
print(received.decode())
send_msg = input().replace('b', '').encode()
if send_msg == ' ':
break
else:
conn.sendall(send_msg)
print("sent")
if __name__ == '__main__':
main()
客户端.py:
import sys
import socket
import select
def main():
if len(sys.argv) is not 3:
print("usage: %s [ip adress][port] " % sys.argv[0] )
return(-1)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((sys.argv[1], int(sys.argv[2])))
while True:
s_msg = input().replace('b', '').encode('utf-8')
if s_msg == '':
break
else:
s.sendall(s_msg)
r_msg = s.recv(1024)
if r_msg == '':
break
else:
print(r_msg.decode())
if __name__ == '__main__':
main()
当我通过从 server.py 发送消息来执行代码时,在我尝试从客户端向服务器发送消息之前,该消息不会发送到客户端。以下是结果示例:
有人知道我的代码有什么问题吗?
如果需要任何额外信息,请告诉我。提前谢谢你。
【问题讨论】:
标签: python python-3.x p2p python-sockets