2010-06-02 33 views
2

我試圖在linux中實現一個簡單的FTP服務器(EFTP協議的變體)。當客戶端連接併發送PASV命令時,服務器應該使用端口號進行響應,以便客戶端可以連接到該端口來傳輸文件。服務器如何選擇端口號?我是否需要遍歷從1024到65535的所有端口,直到找到該進程可以綁定的端口?
我知道用0調用bind()作爲端口會自動選擇要綁定的端口,但是我怎麼知道哪個端口被選中?在機器上查找可用的網絡端口

非常感謝。

回答

7

您讓系統選擇使用0作爲端口號時提到的一個,並且您致電 getsockname()來檢索其地址 - 其中包括端口號。

相關問題