0
rawコマンドを使用してFTPサーバーにファイルをアップロードしようとしています。はい、私はこれを行うためのプログラムやパッケージがあることを知っていますが、私のような贅沢な組み込みアプリケーションです。私の問題は、すべての適切なコマンドを正常に発行した後、ファイルがサーバー上に存在しないことです。ここで raw FTP STORコマンドの使用方法
は私がやったことだ:- 私はポート21(Sock1)に私のFTPサーバへのコマンドのソケット接続を確立し、挨拶を受け、私は "USER myusernameと指定" 送信
- (コード220)と私は "PASS mypasswordという" を送信成功コード331
- を受信して、成功コード230
- を受け、私は "TYPE I" を送信し、成功コード200 を受け取ります
- "PASV"を送信し、成功コード227を6つの数字とともに受信します。
- これらの番号をIPアドレスとポートにデコードします。彼らは妥当に見えます。
- 上記のアドレスとポート(Sock2)へのTCPデータソケット接続を正常に開きます。
- 私はsuccessfuly Sock2にmyfilenameの内容を送信する "STOR myfilename" を送信し、成功コード150
- を受けます。
- 私はSock2を閉じ、次にSock1を閉じます。
すべてが消えているようですが、サーバー上のファイルはありません。誰か私が間違っていたことを教えてもらえますか?
私はさまざまなFTPクライアントプログラム(PUTコマンドを使用)を使用してファイルをアップロードできるので、サーバーのOkを知っています。
これは、サーバが正常な転送を確認するのを待つ必要があることを除いて、ほとんどOKです。つまり、ステップ10でsock2を閉じ、サーバから226を待ち、次にsock1を閉じます。また、sock1を閉じる前に応答を待つなど、quitコマンドを追加することもできます。それとは別に、実際の実装がここで説明しているものとは異なる場合があります。 –
あなたは右のステファンだった。最初にsock2を閉じて、それを確定するのを待っていた。これを「回答」として提出すれば、私はそれを受け入れます。 – DontPanic