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

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

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/10/24 21:30:36
  • 終了:2013/10/28 14:51:54

ベストアンサー

id:gizmo5 No.2

gizmo5回答回数484ベストアンサー獲得回数1382013/10/27 00:24:10

ポイント400pt

ブラウザでサーバから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 でコンソールに書き出せば良いと思います。

id:sat777

回答ありがとうございます。この方法で試したいと思います。

2013/10/28 18:57:45

その他の回答(2件)

id:kemeko0809 No.1

ささみん回答回数338ベストアンサー獲得回数232013/10/24 23:57:37

ポイント50pt

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

id:tea_cup

ethereal → Wireshark ですよね。

2013/10/25 03:46:31
id:gizmo5 No.2

gizmo5回答回数484ベストアンサー獲得回数1382013/10/27 00:24:10ここでベストアンサー

ポイント400pt

ブラウザでサーバから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 でコンソールに書き出せば良いと思います。

id:sat777

回答ありがとうございます。この方法で試したいと思います。

2013/10/28 18:57:45
id:honeniq No.3

ほねにく回答回数6ベストアンサー獲得回数12013/10/28 10:21:48

ポイント50pt

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

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

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

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません