Как подписаться на события открытия или закрытия порта в C? - PullRequest
0 голосов
/ 07 ноября 2019

Я обнаружил, что вы можете использовать GetTcpTable2, чтобы узнать все состояния TCP-соединения. К сожалению, для циклического перебора массива, возвращаемого GetTcpTable2, требуется 100 мс (см. Пример в верхней ссылке). Это неприемлемо, потому что я хотел бы узнать PID каждого сетевого пакета, который проходит через (1000 в секунду).

Вместо этого я хотел бы получать уведомление, когда любой сокет TCP меняет статус на LISTEN или CLOSED и хранить кэш открытых портов.

Можно ли подписаться на события открытия и закрытия любого порта в системе?

ОБНОВЛЕНИЕ: Цель состоит в том, чтобыопределить, какой процесс отправляет пакеты. IP-пакеты, которые есть. Если вы знаете исходный порт, вы знаете процесс, который использует сокет. Я хотел бы сделать его как можно более производительным, чтобы я мог использовать Интернет как обычно, а также следить за тем, что делает мой компьютер.

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