人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ブラウザでサーバからUDPで送られてくるデータを見たいのですが、可能でしょうか?
現在、サーバ上であるシミュレーションを行っているのですが、PCでリアルタイムに途中経過をモニタしたいと考えています。ただ、複雑な方法は取りたくないため、UDPでPCにデータを送り、ブラウザ(+JavaScript)に表示させる方法がないか検討していますが、方法がわかりません。(数値を表示させる程度です。)
実際に動作するコードもしくは、解説しているサイトを教えてください。
(PCの環境は、Win7+IE9です。)


●質問者: ぐる
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ささみん
●50ポイント

etherealあたりを使った方がよさそうですが、
IEの拡張で実現する方法もあるようです。
http://fiddler2.com/


tea_cupさんのコメント
ethereal → Wireshark ですよね。

2 ● gizmo5
●400ポイント ベストアンサー

ブラウザでサーバからUDPで送られてくるデータを見たいのですが、可能でしょうか?

無理です。
ウェブブラウザで標準的に扱えるプロトコルは HTTP や FTP といったところですが基本的にクライアント(ブラウザ)から問い合わせて応答を得るようなプロトコルです。
シミュレーションを行うプログラムから、UDP でデータを垂れ流しにするということは無手順ということでしょうからブラウザには理解できません。



私が思いつく方法は二つあります。

・ファイルに出力した結果を CGI で切り取って受信する

シミュレーションをするプログラムがファイルに結果を時刻付きで書きだす。
そのサーバには CGI を配置して送られた時刻以降の結果を返す。
ブラウザでは最後に受信したデータの時刻を指定して、サーバの CGI に問い合わせる。

シンプルだと思いますがシミュレーションの実行時間が長くなるとどうしても遅くなります。


・ブラウザを使うのではなく、データを受信するプログラムを書く

Windows ということなので一番手軽なのは VBScript ではないかと思います。
標準では UDP を扱うことはできませんがこちらの OCX を使うと UDP の受信ができます。
http://homepage2.nifty.com/nonnon/Download/ScriptComTest/

UDP 通信をする VBScript のサンプルはこちらにあります。
http://kchon.blog111.fc2.com/blog-entry-135.html

データ送信の部分を割愛して、受診したデータの出力を MsgBox ではなく WScript.Echo でコンソールに書き出せば良いと思います。


ぐるさんのコメント
回答ありがとうございます。この方法で試したいと思います。

3 ● ほねにく
●50ポイント

「ブラウザに表示させる」という縛りが無いのであれば、他の方も挙げられているWireshark(旧Ethereal)がお勧めです。

http://www.infraexpert.com/info/wiresharkindex.html
このへんを参考にインストールしてもらって、キャプチャ時にUDPの特定ポートのみ表示するようなフィルタを掛けてあげるといいんじゃないでしょうか。

例)DNSのパケットだけを表示したい場合
ディスプレイフィルタに「udp.port==53」と設定

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ