Может ли клиентское соединение в состоянии CLOSE_WAIT быть прервано из командной строки (вне сервера)? - PullRequest
0 голосов
/ 19 февраля 2020

У меня приложение, работающее на порту 7496 (сервер), и есть неизвестный процесс (неизвестный клиент), пытающийся подключиться к этому порту, и он неправильно закрывает соединение, поэтому, если я наберу

lsof -n -i4TCP:7496  
COMMAND     PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
JavaAppli 45628 Admin   61u  IPv6 0xb510809c2b4037f3      0t0  TCP *:7496 (LISTEN)
JavaAppli 45628 Admin   62u  IPv6 0xb510809c2b3ffab3      0t0  TCP 127.0.0.1:7496->127.0.0.1:58507 (CLOSE_WAIT)

(это показывает, что мое серверное приложение (45628), но не показывает PID клиента)

проблема в том, что этот процесс блокирует меня для создания новых соединений с сервером: я пытаюсь подключиться другие процессы на сервере, но сервер блокирует эти соединения, я хотел бы закрыть клиент (не сервер, работающий на порту 7496)

было бы возможно закрыть это соединение? или принудительно закрыть это соединение CLOSE_WAIT ?, я на macOS

большое спасибо

1 Ответ

0 голосов
/ 19 февраля 2020

Два предложения:

  1. Если один клиент блокирует других, возможно, вам нужна большая очередь прослушивания? https://docs.python.org/3/library/socket.html#socket .socket.listen
  2. Если вам нужны тайм-ауты, возможно, используйте select и / или socket.settimeout () https://docs.python.org/3/library/socket.html#socket .socket.settimeout

HTH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...