@scxrp

Как узнать какой клиент отключен?

Серверная сторона. При подключении клиента я в виде кортежа кидаю его имя и адрес подключения в список.
Аля
client_list.append((f'{name}', f'{addr[0]}'))

Это мне нужно для вывода подключенных клиентов в Listbox, который выводит весь список из client_list.

Отключение клиента я ловлю исключением
except ConnectionResetError or ConnectionAbortedError:
        c.close()


Так вот здесь же, мне нужно удалять клиента из client_list. Но как мне узнать какого именно клиента?
К слову, клиенты подключаются в каждом новом потоке.
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
xenon
@xenon
Too drunk to fsck
Каждое TCP соединение идентифицируется через кортеж - IP + порт сервера, IP + порт клиента.
После подключения нужно узнать эти параметры и в каком-то списке держать эти 4 + id клиента.

При ловле эксепшна - нужно не просто активировать свой код, а еще и взять сам exception (except ConnectionResetError as e:`) и через e, узнать, что это за соединение (возможно там нужно будет добраться до socket, а через него уже узнать конкретные адреса-порты). Затем сопоставляем это по своей табличке и узнаем, кто отвалился.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы