推 yuminyung:謝謝,我大概懂了 05/01 14:39
: 我用TELNET試試看
: 當我下LIST的指令後
: 它有回傳
: 150 Data connection open
: 226 Transfer complete
: 那請問我收到的LIST檔會存哪?
RFC 959 http://www.ietf.org/rfc/rfc959.txt
關於LIST的說明如下
This command causes a list to be sent from the server to the passive DTP.
所以你在還沒有LIST之前必須要先建立一個passive的data transfer process(DTP)
建立DTP方法則是使用PASV指令去request server開一個data port
PASSIVE (PASV) 說明如下
This command requests the server-DTP to "listen" on a data
port (which is not its default data port) and to wait for a
connection rather than initiate one upon receipt of a
transfer command.
這個時候server會reply 開啟哪個data port
接著就可以使用LIST request 再連上server 指定的data port
server就會回傳150 Data Connection到clinet的control port
最後server就會從data port把LIST的資料傳給clinet
所以 LIST資料就是在接收data的port那邊
: 還有當我使用RETR filename後
: 也有收檔完成的回傳,但也找不存在哪了
當收檔的時候 從接收data的port那邊所收下的資料 必須要自己開檔案存起來
在接收檔案之前server會告知clinet所傳檔案的大小
所以必須要按照檔案的大小把檔案資料存入新開的檔案裡面
: 最後一個問題是,我下了PASV後
: 下傳輸的指令(LIST,RETR等)時都會停住,或是說
: 450 try later - data connection in use
我不太了解 你要問的意思 可以請你再說清楚一點嗎
我想你會發生的問題是不是接到PASV的reply之後
沒有connect到server所開的data port才會停住
不知道是不是有解決你的問題
如果有問題的話 歡迎大家一起討論
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.82