• Как проверить на подключение клиента по socket python?

    @logos7
    Непонятки в том, что клиент может оборваться без предварительного сообщения. Как тогда отключить клиента от сокета на стороне сервера.

    Клиент от сокета отключится сам, после того как вы закроете коннект conn.close(). Если клиент отключился самостоятельно то socet выдаст исключение [WinError 10054] Удаленный хост принудительно разорвал существующее подключение. А если отвалился без предупреждений, то блокирующий метод conn.recv(1024) вернет 0 байт. Этот метод либо разблокируется по таймауту, который можно предварительно задать или по получении полезных данных или получении данных b'' длиной ноль байт, что означает, что клиент отвалился от сокета.

    Ведь если клиент отключился, а я не удалил его с сервера, то когда он будет подключаться снова conn, addr = sock.accept() выполняться не будет и программа зависнет.
    Да будет подключаться если ему надо и ничего не зависнет.
    Ответ написан
    Комментировать