проблема с сокетами на python
Я нашел простой мессенджер на python.Использую сокеты, и столкнулся с проблемой: отправлять сообщения можно только по очереди, т.е. пока я не отправлю сообщение, то другой человек не сможет мне ничего написать, потому что ожидает данных. Как можно решить эту проблему, мне не обязательная библиотека socket, если есть те либы, которые помогут мне избежать эту проблему, то тоже приветствуется. Не думаю что код будет полезен, но я оставлю его тут (хотя я просто скопипастил, как пример):
Клиент:
import socket
sock = socket.socket()
sock.connect(('localhost', 9090))
sock.send(input(">"))
data = sock.recv(1024*1024)
sock.close()
print(data)
Сервер:
import socket
sock = socket.socket()
sock.bind(('localhost', 9090))
sock.listen(1)
conn, addr = sock.accept()
while True:
data = conn.recv(1024*1024)
if not data:
break
conn.send(data)
conn.close()
Ответы (1 шт):
В строке кода sock.listen(1) Нужно увеличить аргумент с 1 до 5 например.
Так говорится в официальной документации:
Наконец, аргумент для прослушивания сообщает библиотеке сокетов, что мы хотим, чтобы она поставила в очередь до 5 запросов на соединение (нормальный максимум), прежде чем отклонять внешние соединения. Если остальная часть кода написана правильно, этого должно быть достаточно.