각 프로세스가 다른 시스템과 통신하기 위해 소켓을 생성하기 위해 다른 포트를 선택하도록 컴퓨터에서 서로 조정 된 여러 프로세스가 있어야합니다. 각 프로세스는 사용 가능한 포트 범위에서 포트 번호를 선택해야합니다. 따라서 특정 시점에 하나의 프로세스 만 주어진 포트 번호를 사용합니다.프로세스간에 포트 사용을 어떻게 조정할 수 있습니까?
이 조정을 수행 할 기존 메커니즘이 있습니까? 아니면 자체적으로 구축해야합니까?
현재 디스크의 파일을 사용하여 포트 번호와 해당 포트를 사용중인 PID를 등록합니다. PID가 더 이상 실행되지 않는 항목이 발견되면 프로세스가 비정상적으로 종료 된 것으로 간주되어 항목을 수확해야하므로 항목이 제거됩니다.
그러나 드문 경우처럼 어떤 종류의 경쟁 조건이있는 것 같습니다. 동일한 포트를 사용하는 두 프로세스로 끝나고 두 번째 프로세스는 예약 된 포트를 보여주는 파일 내용을 보지 못하고이를 사용하여 끝납니다 두번째.
이 문제를 해결하기보다는 포트 충돌 방지를 위해 기존 메커니즘을 채택하기 때문에 이러한 유틸리티가 이미 존재하는지 묻습니다.
왜? 소켓 스택은 메시지를 올바른 프로세스로 라우트하도록 설정되므로 같은 포트 번호에서 동일한 서버와 통신하는 여러 프로세스가 여전히 충돌을 일으켜서는 안됩니다. –