Я создал очень простой TCP-сервер в Python. Я подключаюсь, затем сервер ожидает отправки данных от клиента, затем клиент ожидает отправки данных обратно. Пока все ждут, они не могут отправлять данные. Таким образом, одна сторона не может отправить два сообщения обратно. Я хотел бы, чтобы обе стороны слушали и все еще могли посылать все время. Как бы я пошел по этому поводу?
Код сервера:
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.bind((ipAddr, port))
print('Server starting on ' + ipAddr + ':' + str(port))
socket.listen(10)
print('Waiting for connection...')
c, addr = socket.accept()
print('Connection recieved from ' + str(addr))
while True:
try:
buf = c.recv(1024)
if buf == 'stop':
break
elif len(buf) > 0:
print(buf)
response = input('>')
c.sendall(str.encode(str(response)))
except:
print('Error')
break
socket.close()
Я бы хотел иметь возможность отправлять друг другу сообщения от сервера к клиенту, при этом все еще прислушиваясь к ответам от клиента