2016-12-22 3 views
1

У меня есть сервер, который прослушивает подключения по протоколу UDP и другой по TCP. Мне нужно знать, какой процесс инициировал соединение. Это возможно? Я нашел несколько решений, но все подразумевают проверку каждого процесса для каждого порта, что, по моему мнению, имеет проблемы с производительностью. Кроме того, когда я это пробовал, я получаю только PID моего серверного приложения, а не клиента.C# найти идентификатор процесса (pid) клиента, делающего вызов UDP/TCP

Спасибо

ответ

0

вы можете попробовать это

netstat -a -n -o | find "1688" 

Вы получите точный результат процесса

UDP 10.4.112.77:55866  *:*         1688 
UDP 127.0.0.1:1900   *:*         1688 
UDP 127.0.0.1:55868  *:*         1688 

Попробуйте для полного порта идентификатор процесса и имя процесса.

  1. Открыть окно командной строки (как администратор) С «Пуск \ поле поиска» введите «ЦМД», а затем щелкните правой кнопкой мыши на «cmd.exe» и выберите «Запуск от имени администратора»
  2. Enter: netstat -abno
  3. Найдите порт, который вы слушаете в разделе «Местный адрес»
  4. Посмотрите на имя процесса непосредственно под ним.

вы можете собирать информацию, а затем разобрать выходной

это одна ссылка стека может быть помогает вам. Which PID listens on a given port in c#

+0

netstat -a -n -o | найти номер порта «55868», вы получите идентификатор процесса UDP [:: 1]: 55865 *: * 1688 Надеюсь, что это поможет –

Смежные вопросы