ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 08:09

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 5 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2008年8月20日(水) 20:24 
たまに質問させていただいている初心者のkoboです。
winsockとはなんぞやと思い、サンプルコードを探してやってみました。
サンプルコードをそのままコピーアンドペーストすると、ちゃんと動いて
凄いなぁと関心しておりました。
(FTPサーバー?よりTXTファイルをダウンロードするコードです)
では、実験と思い、自分の使っているHPの一部にTXTファイルをアップデートしておいて
サンプルコードの、FTPサーバーの指定・ユーザー名・パス・ダウンロードのファイル指定と
思われる部分を書き換えて見ると、ダウンロードは成功しましたが
ソケットクローズの為(だと思う)に”QUIT”を送信した後のレスポンス受信で
止まってしまいました。
とくにエラーが出るわけでもなく、待っている感じでEXEは動いています。
前に記載されている部分と一緒のコードが書いてあるので、特別をしているとは思えないので
”QUIT”を変えないといけないのかなと思っています。
ソケットで使用するコマンドは、サーバーによって違うのでしょうか?
それらは何を勉強すれば分かるのでしょうか?
今回、実験で使ってみたのはYahooのジオシティーズというところです。
使用させて頂いたサンプルコードは、situmon様の
http://www.activebasic.com/forum/viewto ... light=recv
を使用させていただきました。

なぜ、レスポンスが返ってこないのでしょうか?


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2008年8月20日(水) 21:32 
うまく動作するコードを見ても、問題点を指摘できませんょ。
こういう場合は、自分でFTPサーバを立てて、FTPサーバのログとLANアナライザ
を比較しながらデバッグを行う物です。
プロパイダのFTPサーバで試すと、多くの人に迷惑が掛かる可能性がありますょ。

おそらく、エラー処理に問題が有る気がしますが・・・


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2008年8月20日(水) 21:40 
多くの人に迷惑が掛かるとの事、これはダメですね。
上手く行くコードを見てもそれは指摘できないですね。
LANアナライザーとはなんでしょう。
解らない言葉ばかりです。
自分でFTPサーバーを立てるなども初心者故にできません。
なので、いつの日か玄人になったらまたチャレンジしてみます。
ご指摘ありがとうございました。


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2008年8月25日(月) 22:25 
オフライン

登録日時: 2005年5月31日(火) 09:39
記事: 35
お住まい: 岐阜
久しぶりの投稿です。

書き込みを見る限り、何年か前に私の投稿したFTPサンプルのコードの
お話のようなので返信させていただきます。

余り時間が取れないので、コードの詳しい説明とかは省きますが、
一応コードを修正しておきました。

原因は、”TYPE A”コマンドを送った後のレスポンス受信をなぜか2回行っていた
ためだと思われます。

一応、Microsoftのサーバで正常な動作を確認しましたので、一度
ご確認ください。

なお、私の使ったABは4.24なので、違うバージョンでの動作は
試していませんのであしからず。

それにしても、昔の自分のコードは見難い・・・・・


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2008年8月25日(月) 23:08 
situmon様 小生の様な初心者に返信までありがとうございます。
皆様に迷惑が掛かるといけないので、当方で実験はできませんが
一先ず、理解できる日を夢みてファイルに保存させていただきました^^;

一応、前回の実験結果です。詳細はメモ取りしてありますので所作だけお伝えしておきます。
1、最後の行にmsgbox 0,"finish","finish"を追記
2、各入力項目、FTPアドレス・ユーザー名・パスワード・カレントドライブ・ダウンロードファイルのタイプ・ダウンロードファイル名・保存名を書換えて実行
3、実行後、finishまで行かず、コマンド-7を表示した後、レスポンス-9が表示されなかったことより、その間にて停止しているだろう仮定。
4、各行間にmsgbox 0,"1","実行中"と連番で追記し何処で止まっているかを調査
コマンド-7後のレスポンス受信APILONG=recv(Sock,StrPtr(RBUF),Len(RBUF),0)にて停止していると思われる。
以上が、前回の記録です。
その後、有耶無耶になるのも気分が悪いので本を読み漁っていると、recvで反応待ちの場合、「サーバーの返答が空っぽだと永遠に待ち続ける」との一文を発見したので、これだったのかなぁ?と、自己納得に追い込んでおきました。
でも、別のトコだったのですね^^;;;
situmon様のコードは、未踏の部分で見ているだけで勉強になります。
分厚い本を片手に頑張って勉強しているので、winsockが使えるようになったら、また参考にさせて頂きたいと思います。ありがとうございました。


通報する
ページトップ
   
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 5 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Semrush [Bot] & ゲスト[17人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean