• ベストアンサー

VBでHTTPの並行アクセスを行いたいのですが

Visual Basic 6.0で複数のHTMLファイルを並行して読み込むHTTPクライアントを作成することは可能でしょうか?また、それを実現するためにはどうすればよいのでしょうか? できましたら、サンプルコードなども併せて掲載して頂けるとありがたいです。よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • itohh
  • ベストアンサー率45% (210/459)
回答No.3

こんにちは。itohhといいます。 参考に載せたURLは、結構簡潔に説明されていると思うのですが... 申し訳ないですが、今は、ちょうど良いソースを載せられる環境にないんですよ。 代わりにソースが載っている(プロジェクト自体がダウンロード出来る!)サイトを 紹介します。ただし、英語のサイトなので引いてしまいますかねぇ。 「vb accelerator」 URL:http://www.vbaccelerator.com/ このページの真ん中くらいに 「Go to the Code!」とあります、その中の「Code Libraries」に 「Multi-threding in ActiveX EXEs」というものがあります。 時間がないとのことなので。 もう一つの方法は、2つのプログラムを作成するというのはどうでしょうか? 1つ目は、画面(form)を持ち、実行を制御します。(Aプログラム) 2つ目は、URLを読み込むプログラムです。(Bプログラム) 使い方としては。 AのプログラムでURLを指定して実行ボタンを押すとURL毎にBプログラムを起動する というのは如何でしょうか?

参考URL:
http://www.vbaccelerator.com/

その他の回答 (2)

  • itohh
  • ベストアンサー率45% (210/459)
回答No.2

こんにちは。itohhといいます。 VBで「複数のHTMLファイルを並行して読み込む」(マルチスレッド)を行うには、 ActiveX形式のDLL(または、EXE)を作成しなければ実現できません。 あるいは、その部分だけはVC++で作成しなければいけません。 参考になるサイトを載せておきますので一度ご覧ください。 また、MSDNライブラリで「マルチスレッド」をキーとして検索してみてください。 詳しい説明が載っています。 「マルチスレッドSocketサーバーによる,データベースサーバーの実現」 URL:http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9903/db_solu/

参考URL:
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9903/db_solu/
take_777
質問者

お礼

ありがとうございます。VBで複数のHTMLファイルを並行して読み込むには、やはりActiveXやVC++などを使わなければなりませんか…予想はしていたのですが… itohhさんご紹介のHPやMSDNライブラリにも目を通させてもらいましたが、時間の制約もあり、全てに目を通すことは容易なことではないことも確かです。 できましたら、参考になる情報だけではなく、もう少し簡潔にポイントをご教示して頂ければと思います。不躾なお願いで恐縮ですが、よろしくお願い致します。

noname#191236
noname#191236
回答No.1

的外れな回答かもしれませんが、下記ページをご覧になってみてはいかがでしょうか? http://homepage1.nifty.com/yukimasa/vbtips/inet/inettop.htm

take_777
質問者

補足

少し補足説明をさせて頂きますと、あるサイトのHTMLファイルのヘッダの情報を取得し、もしも条件に適合すれば、そのHTMLファイルをテキストとして読み込み、処理を行う、という一連の流れを、複数並行して行うことができないか、というのが今回の質問の趣旨です。 サイトは拝見させて頂きましたが、上の目的には合致するものでないようでした。GX71さんには説明不足でご迷惑をおかけしましたが、よろしくお願い致します。

関連するQ&A

  • DelphiでHTTPアクセス。ステータスコードはどこ?

    Delphi6PersonalのClientSocketを使ってHTTPクライアントを作っているのですが、404などのステータスコードはどこに入ってるのでしょうか?また、どうや って取得したらいいのでしょうか?(404のページにアクセスした場合、そのことを示すHTMLのページは取得できます。このページの内容からステータスコードを判断するロジックを組まないといけないのでしょうか?)

  • HTTP接続

    HTTPでサーバー上のファイルをダウンロードする アプリを作成中です。 HTTP接続でサーバー上のターゲットファイル名や、ファイルサイズ等を 取得したいのですが、ネット上しらべたりしたのですが、 FTP接続では同等の機能を実装したサンプルなどがあるのですが、 HTTP接続においては見当たりません。私の調べ方が悪いのかもしれませんが、 そもそも、HTTP接続において希望の処理ができるのかどうか ご教授していただけないでしょうか? ネットワークに疎いですが、早急に実装しないといけなくて 困っております。 よろしくお願いします。 VC++6.0 MFC です。

  • HTTP_Downloadで接続数の制限

    HTTP_Downloadでsendして、そのセッションが終了(ダウンロード終了とかキャンセル等)を、phpソースの処理にハンドリングする方法はあるでしょうか? やりたいことは、HTTP_Downloadでクライアントに複数のファイルをダウンロードさせているのですが、1クライアントが同時に複数のファイルをダウンロードさせないようにしたいのですが。

    • ベストアンサー
    • PHP
  • HTTPリクエスト

    JSPのクライアントからサーブレットにHTTPリクエストを送信する部分について、質問させていただきたく思います。 [実現したいこと] ・クライアント側からのHTTPリクエストのヘッダの内容を、任意のものに書き換えてサーブレットに送信。 [環境] WEB APサーバー:Web Sphere Aprication Server HTTPヘッダを読み取って、ヘッダ内のクライアント情報を元にクライアント別の処理を振り分ける機能を作ったのですが、そこの機能をテストするのに上の機能を使いたいと思ってます。。。 皆様のお知恵を拝借できればと思います。 よろしくお願いいたします。

  • VB.NETによるTCP通信プログラムについて

    VB.NETによるTCP通信プログラムについて VB.NETによりTCP通信プログラムを開発しようと思っておりますが、TCP通信はクライアントとサーバーに機能が分かれると思いますが、一つのアプリケーションでサーバー機能とクライアント機能を有するアプリケーションは開発が可能でしょうか? サンプルプログラムを探しているのですが、どれも、クライアントとサーバーのどちらかの機能だけですが、両機能を持ち合わせたサンプルを掲載されているサイトをご存じの方は、お手数ですが、教えて頂けると助かります。 ご教授のほど、よろしくお願い致します。 Windows XP SP3 Visual Studio 2008 Visual Basic

  • はじめまして。「拡張されたHTTPステータスコード」をWindows版

    はじめまして。「拡張されたHTTPステータスコード」をWindows版のApacheで 返却する方法をご教授下さい。 [経緯] 現在とあるWEBサービスを使用するためのPHPクライアントを作成しております。 PHPクライアントはHTTP経由のGETでパラメータを送り サーバ側もHTTPでクライアントへ結果を返却します。 その結果を元にクライアント側で処理を行います。 但し、サーバ側の結果は「拡張された」HTTPステータスコードで返却されます。 ※「拡張された」HTTPステータスコードは「0」「30」「-3000~-3012」など サーバ側の環境が無いため、現在モックを作成してクライアントの 挙動確認を行おうと考えております。が、モック作成が上手くいかないのです。 モック(PHPモジュール)からRFCに定義されていないHTTPステータスコードを 返却すると、Apacheが500のInternal Server Errorを返却してしまいます。 尚、Windows版のApacheでは上記のような動作となるのですが Linux版のApacheでは、指定したHTTPステータスコードが返却されます。 どなたかWindows版のApacheで、「拡張されたHTTPステータスコード」を 返却する方法をご存知では無いでしょうか? [環境]  サーバOS:Windows Vista Home Premium  WEBサーバ:Apache2.0(Windows版インストーラ使用)  CGI:PHP5.2.12(Windows版Zipを使用) [構図]   (WEBサービス)     ↑|   GET|| HTTPステータスコード     |↓  (PHPクライアント) [サーバ側モジュール例] <?php header('HTTP/1.1 3000 Precondition Failed'); ?> 以上、よろしくお願い致します。

    • 締切済み
    • PHP
  • HTTPでファイルをアップロード

    ASPとHTMLで、ブラウザからファイルを選択してアップロードするページを作成しているのですが、以下の条件を満たすページは作成可能でしょうか。 【FTPではなく、HTTPでファイルを転送する】 【CGIは使わない】 ※サーバーはIISです。 いろいろと試行錯誤しながら試してみたのですが、うまくいきません。 何かご存知の方いらっしゃいましたら、教えてください。

  • C言語でHTTP1.1のキープアライブを使用したい

    ご存知であればお知恵を貸してください。 C言語のソケットプログラムで、HTTP1.1のキープアライブを有効にする方法を調べています。 経緯としては、Unix(SystemV系)のC言語でHTTPクライアントを作成しました。 GET(またはPOST)メソッドのHTTPリクエストを発行して、そのレスポンスをコンソールに表示するような一般的なソケットプログラムです。 (socket() → connect() → send() → recv()と言った流れです) 連続してリクエストする場合があるので、connect()で作成したコネクションをプログラム中で使用し続けたいのですが、一度のリクエスト、レスポンスでコネクションが切断されてしまいます。(HTTPの仕様) HTTP1.1で定義されているキープアライブを使用すればよいと考え、ソースコードにおいて以下の対応を追加しました。 ・setsockopt()でSO_KEEPALIVEを有効にする。(socket()とconnect()の間で呼び出し) ・送信するHTTPヘッダのプロトコルバージョンを1.1として、Host:ホスト名、Connection: Keep-Aliveを設定 HTTP1.1でキープアライブを有効にしている自宅のApache2.2がターゲットなのですが、上記対応後もコネクションが切断されてしまいます。 Apacheについては、環境変数の出力結果からHTTP1.1でキープアライブが有効になっていることは確認済みです。 HTTPクライアントプログラムについては、都度コネクションを張れば問題なく動作するので基本部分は間違っていないと考えています。 HTTPクライアントプログラムで、キープアライブを有効にするための何かが欠けているのだと推測しているのですが、どなたか何かお気づきのことはございませんでしょうか? #手元にソースコードがないために、掲載できないので漠然とした質問になってしまいました。すみません。

  • HTTPでファイル転送させるには?

    質問1 HTTPでのファイル転送 以下のようなことを考えています。 1)多数のクライアントから、サーバに対してテキストファイルをある周期で転送します。 2)クライアントには固定IPアドレスが割り振られています。 3)クライアントはWindows2000/XPです。 4)サーバはWindowsServer2003かUNIX(メーカ未定)を導入予定です。 5)クライアントとサーバの間にはセグメント越えが必要な場合があり、HTTPのみ利用可能です。 6)ファイル転送のソフト(もしくはコマンド)はクライアント側にあり、クライアントからサーバにファイルをPUSHします。(サーバからPULLするのではありません) こういった上記の要件の場合、HTTPでテキストファイルをサーバに転送させることは可能でしょうか? 質問2 ファイル転送の結果を検証する ファイル転送後に、確実に送信できたかどうかを知る方法を教えてください。FTPだと、ファイルリスト、ファイルサイズ、タイムスタンプなどを確認してチェックするという方法が思いつくのですが、HTTPの場合はどうなんでしょうか? 以上、2つの質問に対して、可能であるならば、 ・こういうコマンドを利用すればよいよ ・こういう関数があるよ ・こういうソフトがあるよ など、どんなささいな情報でも結構ですので、情報をいただけると大変幸いです。

  • MDBファイル(Access)からデータを取得できなくて、困っています…

    Visual studio 2005(C#を使っています)で、mdbファイル(Access)のデータを取り込むプログラムを組もうとしているのですが、上手くいかなくて困っています。 具体的には、 (1)mdbファイルに接続 (2)mdbの1行分の複数のデータを配列にそれぞれ格納 (3)格納したデータ(数値)をグラフ上にプロット というプログラムです。教えて頂きたいのは、(1)と(2)を実現するプログラムです。何冊かテキストを読み、書かれていたサンプルプログラムを打ち込んでみたんですが、どうも上手くいきません。 宜しくお願い致します。