2013-01-08 3 views
0

C++에서 각 연결이 사용하는 포트를 확인하기 위해 Windows를 어떻게 쿼리 할 수 ​​있습니까?네트워크 연결에서 어떤 포트를 사용하고 있는지 어떻게 알 수 있습니까?

+0

"각 연결"? 각 프로그램을 의미합니까? –

+1

'netstat -a'는 필요한 정보를 제공합니까? –

+0

@AustinHenley : 하나의 프로그램이 여러 개의 연결을 가질 수 있습니다. 따라서 개별 연결을 쿼리하는 것은 전적으로 유효합니다. 필요한 경우, 어떤 프로그램이 주어진 연결을 소유하고 있는지 판별 할 수 있습니다. –

답변

3

TCP 테이블을 얻으려고 했습니까?

Windows에 로컬 주소, 로컬 포트, 원격 주소, 원격 포트 및 해당 연결이있는 프로그램의 프로세스 ID를 보여주는 모든 TCP 연결 테이블을 요청할 수 있습니다.

표를 얻기 : http://msdn.microsoft.com/en-us/library/windows/desktop/bb408406(v=vs.85).aspx

표 항목 : 내가 처음 링크에 좋은 일이 있기 때문에 예를 만들려고하지 않습니다 http://msdn.microsoft.com/en-us/library/windows/desktop/bb485761(v=vs.85).aspx

. 두 가지 유형의 연결이 필요한 경우 UDP에 해당하는 기능도 있습니다.

1

Windows에서 netstat -b -a 명령을 사용할 수 있습니다. 필요한 경우 SHELL 호출로 부를 수 있습니다.

2

getsockname() API을 사용하여 소켓이 연결될 포트를 쿼리 한 다음 sockaddr_in 구조의 sin_port 필드를 확인할 수 있습니다.

관련 문제