看板 LinuxDev 關於我們 聯絡資訊
※ 引述《batista630 (努力工作!!)》之銘言: : ※ 引述《qrtt1 (愚人)》之銘言: : : 這不是 socket 的問題 : : 是 ftp 的問題,層次差很多,已經在 TCP/IP 層之上了 : 這當然是socket的問題呀 因為我用socket再寫ftp XD : : 你用 PORT 指令可以自己指定 port : : PASV 你送出他會給你一個 ip+port -> 140,133,31,33,123,134 : : 最後二個是 port, 123 * 256^1 + 134 * 256 ^ 0 : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : 我知道怎麼換算,我好奇的是那個PORT NUMBER如何決定 : 因為我在寫SERVER 所以我要給CLIENT PORT NUMBER去開DATA CHANEL : : 應該直接查 RFC 954 : 我RFC959看心酸的XD.. : : 應該有 SYST 之類的指令 : 我會去翻翻標準程式庫 我想你誤會了 q 大的意思,你所提的三個問題都是屬於 application control 的問題,並非 socket 的使用問題,而是 FTP protocol 實作問題 簡單來說,PASV, Port number 決定等,都是由 ftp protocol 的 control 先 決定之後,才使用 socket 的 API (諸如bind 等) 來設定 port 等資訊 換言之,socket 只是被動的被告知你要 bind 的 port 在哪,要連的對象在哪 要送多少資料,要接收多少資料,但他無法告訴你「有多少資料要送」,因為 這件事情是更上層傳送前就要知道的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.214.90 ※ 編輯: andytzeng 來自: 220.135.188.188 (06/30 16:10)