2009-03-13 5 views

답변

2

커널 드라이버가 없으면이 작업을 수행 할 수 없습니다. Windows에서 다른 프로세스에서 소켓 핸들을 잡고 사전에 닫는 것은 합법적이지 않습니다.

+1

그러면 sysinternals의 TCPView로 어떻게 할 수 있습니까? 참조 : https://technet.microsoft.com/en-us/sysinternals/tcpview.aspx –

0

SO_REUSEADDR을 조사 할 수 있습니다.

+0

이렇게하면 여러 사람이 바인딩 할 수 있지만 다른 핸들을 닫을 수는 없습니다. – JaredPar

1

소켓을 소유하고있는 프로세스 만 소켓을 닫을 수 있으므로 소켓을 소유하고있는 프로세스를 종료하면됩니다.

명령 줄에서 -o 옵션을 사용하여 특정 소켓을 사용하는 프로세스의 프로세스 ID를 netstat으로 찾을 수 있습니다. 예를 들어 :

netstat -noa | findstr LISTENING 

난 당신이 생각 .NET에서 프로그래밍 방식으로 수행 방법을 모르겠어요.

+0

응용 프로그램이 소켓을 소유하고 있지만 범위를 벗어났습니다. – Malfist

+0

글쎄, 그것은 닫으라는 명령을 받았고, 범위를 벗어나지 만 nestat은 여전히 ​​그것을 듣고있는 것으로 나열합니다 – Malfist

관련 문제