저는 네트워크 애플리케이션을 작성 중인데 약간의 문제가 발생했습니다. 내 서버 프로그램을 닫은 후에도 여전히 "할당된" 사용 중인 포트가 있기 때문에 테스트 사이에 일정 기간을 기다려야 합니다. 더욱이, 내가 다루고 있는 문제가 무엇이든 원인이 무엇인지 알 수 없기 때문에 디버깅이 정말 어려워집니다.
테스트 목적으로 TCP 및 UDP 포트를 확보할 수 있는 방법이 있습니까?
답변1
Python 프로그램에서 소켓에 대한 종료 및 닫기 함수를 호출하여 프로그램이 더 이상 소켓을 사용하지 않는다는 것을 OS에 알려야 하며 해당 함수를 호출한 후 아무것도 사용하지 않으면 소켓 할당을 취소합니다. 프로그램이 종료될 때 이러한 함수를 호출하지 못하면 결국 OS에서 오래된 할당 소켓을 정리할 때까지 기다려야 합니다. 응용 프로그램을 강제로 종료하더라도 OS는 여전히 해당 응용 프로그램이 사용되지 않는다는 것을 명시적으로 알 수 있는 방법이 없습니다. 따라서 프로그램이 종료되고 소켓이 제대로 닫히지 않으면 OS는 해당 프로그램이 실제로 사용되고 있는지 확인할 때까지 잠시 동안 할당된 상태를 유지하고, 그렇지 않은 경우에는 해당 프로그램을 할당된 상태로 유지합니다. 다른 프로그램에서 사용할 수 있도록 할당을 취소합니다.
다음은 Python에서 소켓의 종료 및 닫기 기능을 설명하는 링크입니다. 그래서 대답