Добрый день, пишу простецкий мессенджер и всё, в принципе, готово, но при тестировании на нескольких устройствах сразу вышла ошибка.
Серверная часть выглядит следующим образом - центральный скрипт генерирует несколько подпроцессов с разными портами для ожидания клиентов.
sock = socket.socket()
sock.bind(('', sock_port))
sock.listen(0)
conn, address = sock.accept()
ошибка состоит в том, что несмотря на нулевую очередь (пробовал ставить 1, без разницы), второй клиент тоже подключается к уже занятому порту, а третий - уже кикается и подключается к следующему свободному. пробовал ставить
sock.setblocking(0)
абсолютно такое же поведение. Опыта программирования у меня совсем мало и базы нет, и я бы понял что упускаю что-то важное - если бы все клиенты могли подключиться к занятому порту, но нет. второй залипает и пытается передать сообщение, а третий - уже отбрасывается. Куда рыть? Клиенты на андроиде.
Заранее спасибо!