VB6でWinsockを使って通信するには?

解決


KUROさん  2005-07-09 18:59:33  No: 90907  IP: [192.*.*.*]

プリンタのLANボードなどに、ブラウザでIPアドレスを入力すると、ボードの設定
画面が表示される物があると思いますが、これをVB6のWinsockを使ってやりたい
と思ってます。実際には、ポートの80番に接続して、データを送信、データの受信を行い、受信データのチェックを行いたいのですが、データの送信で何を送信すれ
ばいいのかわかりません。RFCのHTTPを読んでみたのですが、まったく理解できませんでした。どうすればうまくいくのかご存知の方がいらっしゃいましたらご教授願います。
また、InetやWebBrowserなども使用してみましたが、なにぶん接続したい機器が
ブラウザで見たときにログイン画面が表示されるため、正しいデータが受信できません。

編集 削除
3−t  2005-07-10 23:32:52  No: 90908  IP: [192.*.*.*]

通信内容の仕様を理解しなければ解決しないでしょうね。
機器の仕様書に記載があるなら、それを参考に、なければ通信内容を
モニタして同じようにしてみるとか。
まあ、普通その部分はメーカーも公開しないでしょうから
自分で解析するしかないでしょうね。

編集 削除
魔界の仮面弁士  2005-07-11 00:23:38  No: 90909  IP: [192.*.*.*]

ボード側に、簡易Webサーバ機能が実装されているのでしょうね。

HTTPベースの通信であれば、InetSpy等のツールを使う事で、
どのような情報が送受信されているのかは、すぐに分かりますので、
あとはそれを、Inet/WebBrowser/XMHTTP等で再現してやれば良いのでは。

編集 削除
いな  2005-07-11 11:01:44  No: 90910  IP: [192.*.*.*]

>まあ、普通その部分はメーカーも公開しないでしょうから

ん〜?
正規の開発ならば開発時に、
シーケンスIF仕様書は渡してもらえると思うんだが・・・。

編集 削除
KUROさん  2005-07-11 20:00:23  No: 90911  IP: [192.*.*.*]

皆さんありがとうございます。
なんとなく解決しました。
VB6のWINSOCKで通常のTCPと同様に、ポートを80番、HOSTにIPアドレス
をいれて、CONNECTで "GET / HTTP/1.0" & vbCrLfをSENDすると
データが受信されました。
受信されたデータといっても、ブラウザでログイン画面が表示される
為、"401 Unauthorized"が帰ってきますが、返信があるということで
正常かな?と思います。
これで何とかできるかなと思います。

編集 削除
ひろ  2005-07-12 08:49:13  No: 90912  IP: [192.*.*.*]

とりあえず通信することには成功しているので後は認証を通せばOKですね。
Winsockで実装するなら、この辺が参考になると思います。

http://www.studyinghttp.net/auth

編集 削除
KUROさん  2005-07-12 20:17:52  No: 90913  IP: [192.*.*.*]

何とか解決しました。
お手数おかけしました。ありがとうございます。

編集 削除