Здравствуйте.
Пишу простенький чат с помощью библиотеки socket и потоки threading.
Ситуация такая: запускаю сервер, затем два клиента. Отправляю с одного клиента сообщение, на другом отображается, но, если отправить с того же клиента второе сообщение, то на другом клиенте оно не отобразиться, пока не написать какое-то сообщение в этом клиенте.
Все это решается функцией socket.setblocking(False).
Прописываю её в самом начале при бинде сокета и когда принимаю подключение.
Но я абсолютно не понимаю, почему все так происходит. Что делает эта функция? И почему она решает мою проблему?