HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0108
リアジPCBNET2でのFTP4解決


リアジ

リンク

2007/1/8(Mon) 20:06:05|NO.4702

こんにちは
PCBNET2でFTPサーバーに接続してダウンロードするというものが作りたいんですけど
FTPサーバーに接続するのはtcpopenでできました
けどファイルをダウンロードする方法がわかりません
どうすればいいのですか



この記事に返信する


リアジ

リンク

2007/1/9(Tue) 17:53:46|NO.4708

ログインしたりする方法はFFFTPをみてたらわかりました

tcpput "USER anonymous\n",ftpsoc ;ログイン
ファイルをダウンロードするときは

tcpput "RETR /C:/data.dat\n",ftpsoc
とやったのですが受信する準備はできたみたいなので
そのあとtcprecvでファイルを受信できるのかなと思ったらできませんでした
どうやればいいのでしょうか



kanzaki

リンク

2007/1/9(Tue) 18:03:19|NO.4709

FTPクライアントの制作という事ですね
FTPの通信手順は通常の通信より若干複雑ですので
まずは仕組みを確認してみてください。

http://x68000.q-e-d.net/~68user/net/ftp-1.html
が、参考になるのではないでしょうか?

そちらに書かれている手順の
 FTP サーバが動いているホストのポート21番に接続する
 USER・PASS を送る
 PORT で、FTP サーバに接続してほしいサーバとポート番号を知らせる
 PORT で知らせたポート番号を見張る (データ用コネクション)
 LIST でファイル一覧を要求する
 データ用コネクションにファイル一覧が送られてくるので、それを表示する
 QUIT で終了
から試してみましょう。

出来れば、ルーターを使用しない環境から行うか、DMZに設定しておくか
http://x68000.q-e-d.net/~68user/net/ftp-3.html
に記述されている、Passive モードの通信を行うようにしてください。


FTPの通信は、
命令を行う為のポートと
データーを入出力するためのポートの
2つのポートを使用する点に注意してください。



kanzaki

リンク

2007/1/9(Tue) 18:25:34|NO.4710

追伸ですが

NAPTを使用しているのであれば、
PORTモード(Active モード)の場合は、クライアント側を
PASVモードならば、サーバー側の設定を確認すべきでしょう。


RETRの前に、
port か pasvコマンドでIPとポート番号を取得します。
PORTなら、そのポートで待ち受けをします(あらかじめしておくと良いでしょう)
PASVなら、そのポートへ接続しに行きます。

そのポートでのデーター送受信となります。

PORT 192,168,1,1,19,136
だと
192.168.1.1のクライアントが、19*256+136=5000で、ポート5000で待ち受けと成ります。

http://x68000.q-e-d.net/~68user/net/ftp-4.html
に主要なコマンドが記載されております。


無粋な意見ですが、検索エンジンの活用も悪くないと思いますのでお試しください。



リアジ

リンク

2007/1/9(Tue) 22:07:56|NO.4714

なるほどー FTPコマンドをしらべてみたらいろいろ出てきました
こういう仕組みになっていたんですね

>PORT 192,168,1,1,19,136
>だと
>192.168.1.1のクライアントが、19*256+136=5000で、ポート5000で待ち受けと成ります。
たしかにこういうデータが送られてきてました
そこに接続して、RETRを送ったらpcbrecvで受信できるようになりました!
返答ありがとうございました



ONION software Copyright 1997-2023(c) All rights reserved.