by 超初心者 » 2006年7月06日(木) 20:59
FTPの切断で教えてください。
コードは、SPIRIT様のサイト・WinTipsに有る「FTPサーバ経由でファイルを落とす」そのままなので、著作の問題を感じさしひかえます。
概要は、下記の感じです。(そのままですが・・・)
1, open=InternetOpen(0,0,0,0,0)
2, ftp=InternetConnect(open,"192.168.0.1",21,"test","test",INTERNET_SERVICE_FTP,0,0)
3, ack=FtpGetFile(ftp,"test.bmp","D:\test\test.bmp",TRUE,_
4, InternetCloseHandle(ftp)
5, InternetCloseHandle(open)
プログラムはうまく動作するのですが、4のハンドルクローズ時に、FTPサーバに「ソケットの接続が失われた」とエラーがでます。(まぁ、ソケットを切った訳なので・・・・)
しかし、コマンドプロンプトよりFTP→Bin→Get→Quitの手順で切断した時はエラーが出ません。
パケットモニタで比較してみると、Quitコマンド実行にFTP(PORT21)へQUIT→ACK→GootBye→Ackを行った後にFlagsでResetフラグを通知をしていました。(プログラムではInternetCloseHandle時に、いきなりFlagsでReset を通知しているので強制的に回線が切れたとFTPサーバ様は御怒りです。)
Dosコマンドと同じ事をABで行いたく該当するFTP系のAPIを探しまわりましたが見つかりません。(VBやC++関係のTipsでも、SPIRIT様と同様の手順で、Quitを行うサンプルは見つかりませんでした。)
なんとか、FTPへQuit→GootByeを送信する方法はありませんか??(FTPサーバが、I/OをFTPで通知する専用ハードでして、切り方が悪いと手動でリセット操作を行う必要があります。)
よろしくお願いいたします。
FTPの切断で教えてください。
コードは、SPIRIT様のサイト・WinTipsに有る「FTPサーバ経由でファイルを落とす」そのままなので、著作の問題を感じさしひかえます。
概要は、下記の感じです。(そのままですが・・・)
1, open=InternetOpen(0,0,0,0,0)
2, ftp=InternetConnect(open,"192.168.0.1",21,"test","test",INTERNET_SERVICE_FTP,0,0)
3, ack=FtpGetFile(ftp,"test.bmp","D:\test\test.bmp",TRUE,_
4, InternetCloseHandle(ftp)
5, InternetCloseHandle(open)
プログラムはうまく動作するのですが、4のハンドルクローズ時に、FTPサーバに「ソケットの接続が失われた」とエラーがでます。(まぁ、ソケットを切った訳なので・・・・)
しかし、コマンドプロンプトよりFTP→Bin→Get→Quitの手順で切断した時はエラーが出ません。
パケットモニタで比較してみると、Quitコマンド実行にFTP(PORT21)へQUIT→ACK→GootBye→Ackを行った後にFlagsでResetフラグを通知をしていました。(プログラムではInternetCloseHandle時に、いきなりFlagsでReset を通知しているので強制的に回線が切れたとFTPサーバ様は御怒りです。)
Dosコマンドと同じ事をABで行いたく該当するFTP系のAPIを探しまわりましたが見つかりません。(VBやC++関係のTipsでも、SPIRIT様と同様の手順で、Quitを行うサンプルは見つかりませんでした。)
なんとか、FTPへQuit→GootByeを送信する方法はありませんか??(FTPサーバが、I/OをFTPで通知する専用ハードでして、切り方が悪いと手動でリセット操作を行う必要があります。)
よろしくお願いいたします。