2010-06-02 4 views
2

리눅스에서 간단한 FTP 서버 (변형 버전 EFTP 프로토콜)를 구현하려고합니다. 클라이언트가 PASV 명령을 연결하고 보낼 때 서버는 포트 번호로 응답해야하므로 클라이언트는 해당 포트에 연결하여 파일을 전송할 수 있습니다. 서버가 어떻게 포트 번호를 선택할 수 있습니까? 프로세스가 바인딩 할 수있는 포트를 찾을 때까지 1024에서 65535 사이의 모든 포트를 반복해야합니까?
포트가 0으로 바인딩()을 호출하면 바인딩 할 포트가 자동으로 선택된다는 것을 알고 있지만 어떻게 선택한 포트를 알 수 있습니까?기계에서 사용 가능한 네트워크 포트 찾기

감사합니다.

답변

7

0을 포트 번호로 사용하고 포트 번호를 포함하여 주소를 검색하려면 getsockname()을 호출하면 시스템이 시스템을 선택하게합니다.

관련 문제