0
我想使用原始命令將文件上傳到FTP服務器。是的,我知道有些程序和軟件包可以做到這一點,但我的嵌入式應用程序沒有這種奢侈品。我的問題是,成功發佈所有適當的命令後,我發現該文件不存在於服務器上。如何使用原始FTP STOR命令
這裏就是我所做的:
- 我建立一個命令套接字連接到端口21(Sock1)我的FTP服務器並接收問候(代碼220)
- 我送 「USER 名爲myUsername」 和接收成功代碼331
- 我發送 「PASS 輸入mypassword」 和接收成功代碼230
- 我發送 「TYPE I」 和接收成功代碼200
- 我發送「PASV」並接收成功代碼227以及6個數字。
- 我將這些數字解碼爲IP地址和端口。他們看起來合理。
- 我成功地打開了一個TCP數據套接字連接到上面的地址和端口(Sock2)。
- 我發送 「STOR mYfILEname的」 並獲得成功代碼150
- 我successfuly發送mYfILEname的的內容Sock2。
- 我關閉Sock2,然後關閉Sock1。
似乎一切都好了,但服務器上沒有文件。有人能告訴我我做錯了什麼嗎?
我知道服務器的確定,因爲我可以使用各種FTP客戶端程序(使用PUT命令)上傳文件。
除了您應該等待服務器確認成功的傳輸,即在步驟#10關閉sock2,等待服務器226並且然後關閉sock1之後,這看起來基本沒問題。也許還可以添加一個退出命令,包括在關閉sock1之前等待響應。除此之外,你的實際實施可能與你在這裏描述的不同。 –
你是對的Steffen,首先關閉sock2並等待226修復它。如果您將此作爲「答案」提交,我會接受它。 – DontPanic