Mam aplikację, którą odziedziczyłem, która nasłuchuje na porcie 7001 dla transmisji UDP z naszego własnego sprzętu testowego, a ostatnio zaktualizowałem kolejną aplikację, która musi zrobić to samo. Obie aplikacje muszą współistnieć na tym samym komputerze.Jak mogę wykryć, który program nasłuchuje portu TCP/IP w systemie Windows?
Obecnie, gdy moja ostatnio zaktualizowana aplikacja próbuje połączyć się z portem w celu nasłuchiwania emisji UDP, po prostu zgłasza, że port jest niedostępny i sugeruje, że odziedziczona aplikacja prawdopodobnie działa. Jak mogę sprawić, aby moja aplikacja wykryła, która aplikacja faktycznie nasłuchuje na tym porcie? Zrobiłem wyszukiwarkę Google i przeszukałem tę stronę, ale jak dotąd nie udało mi się znaleźć niczego poza użyciem Menedżera zadań, TCPView lub netstat w linii poleceń.
Wolałbym technikę, która używa interfejsu API Windows lub komponentu COM systemu Windows, ponieważ obie aplikacje są napisane w VB6. (Wiem, wiem, ale muszę zachować te aplikacje, ponieważ mają one krytyczne znaczenie). Jednak rozwiązanie .NET byłoby również przydatne, gdyby było mi potrzebne w moich nowych działaniach na rzecz rozwoju.
GetTcpTable2 może uzyskać identyfikator procesu. Podobne pytanie tutaj [link] (http://stackoverflow.com/questions/13295277/check-on-avaiable-port-using-wmi-win32-class) – user2773289
Nie wiem, czy możesz użyć tego czy nie, ale MSDN Wpis dla powyższego z przykładowym kodem znajduje się pod adresem http://msdn.microsoft.com/en-us/library/windows/desktop/bb408406(v=vs.85).aspx –
Możesz również uzyskać te informacje za pośrednictwem WMI. Bardzo przydatna rzecz. – EJP