Я работаю над проектом, который содержит соединение UDP (он должен использовать протокол UDP, то есть требования).
У меня есть скрипт, который использует клиент-сервер, который позволяет клиенту отправлятьсообщение на сервер, и сервер возвращает сообщение подтверждения.Пока клиент получает сообщение об утверждении, он печатает, что сообщение достигло сервера.
Что мне нужно сделать, это добавить клиенту возможность прослушивать другие сообщения, которые сервер отправит емупри отправке на сервер других сообщений.Эта способность должна работать в фоновом режиме.
Другими словами, клиент должен иметь возможность получать и получать сообщения одновременно.Я предполагаю, что лучшим вариантом будет использование потоков, но я не смог найти, как правильно использовать его в моем скрипте.
Мой клиентский скрипт:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.settimeout(5)
sock.bind(('127.0.0.1', 5001))
msg_str = ""
while msg_str == "":
print("Write Your Message:")
msg_str = input()
sock.sendto(msg_str.encode(), ('127.0.0.1', 5002))
rec_msg, rec_address = sock.recvfrom(65527)
rec_msg = rec_msg.decode('utf-8')
print(str(rec_address) + " >> " + rec_msg)
msg_str = ""
Мой серверный скрипт:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('127.0.0.1', 5002))
print('Listening')
while True:
# set max size of message
rec_msg, rec_address = sock.recvfrom(65527)
# decoding the message to String
rec_msg = rec_msg.decode('utf-8')
print(rec_msg)
sock.sendto(rec_msg.encode(), ('127.0.0.1', 5001))