В настоящее время я пытаюсь создать программу на Python, в которой два компьютера, подключенные к разным серверам, могут отправлять сообщения друг другу.Ниже приведен мой код:
Server.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()
Client.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сообщение не было отправлено клиенту, пока я не попытаюсь отправить сообщение от клиента на сервер.Вот пример результата:
Кто-нибудь знает, что не так с моим кодом?
Пожалуйста, дайте мне знать, если нужна дополнительная информация.Заранее спасибо.