• ベストアンサー

UDPでやりとりするには?

UDPを勉強しています。 下記のページ等を見ると、いずれも1度だけUDPのメッセージを送って終了しているのですが、例えば、SNMPのやりとりのようにまずUDPで、 Get Request というメッセージをSNMPのサーバ(エージェント)に送り、そのレスポンスを受け取りたい場合はどのようにすれば実現できるのでしょうか? http://milkyway.merseine.nu/100java/Java/Java099.html http://www.hellohiro.com/datagram.htm

  • Java
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
回答No.1

1)レスポンス受信用のスレッドを用意してDatagramSocketでレスポンスを待ち受ける。(バインドするポート番号はレスポンス用のポートを指定する) 2)メッセージ送信用DatagramSocketを別に用意し,SNMPエージェントにメッセージを送信する。(バインドするポート番号は指定なしで良い) 3)レスポンス用DatagramSocketがレスポンスを受け取ったら,パケットの中身を調べて送信元のIPアドレスがSNMPエージェントならメッセージに対するレスポンスと見なす。 てな感じじゃないでしょうか。

netw2009
質問者

お礼

ありがとうございます。 やってみます。

netw2009
質問者

補足

質問者です。 すみません、1)で指定したレスポンス用のポートは、SNMPエージェントにはどのように知らせればよいのでしょうか?

関連するQ&A

  • UDP通信する時に、相手にどうやって自分のポート番号を教える?

    UDP通信する時に、相手(送信側)にどうやって自分(受信側)のポート番号を教えるのでしょうか? 例えば、下記のページのサンプルだと、受信側は5555で待ち受けていますが、この場合は送信側はあらかじめ受信側が5555で待ち受けていると知っています。送信側が知らない場合に、どうやって受信側のポート番号を知らせればよいのでしょうか? http://www.hellohiro.com/datagram.htm

    • ベストアンサー
    • Java
  • 特定IPだけポート変換

    CentOSでsnmpマネージャを構築しています。 CentOS機からはsnmpget/snmpwalkで外部のSNMPエージェントにsnmp requestを投げます。 ほとんどのsnmpエージェントに対しては通常のUDP161番あてに投げますが 特定のIPアドレスのsnmpエージェントに対しては別のUDPポート番号に対して投げたいのです。 iptablesを使ってDestinationポートを変換できそうな気がするのですが このような場合、iptablesをどのように書いたらよいかお教えいただけないでしょうか。 (念のため書きますと、CentOS機はFWとしてつかっているわけではありません。 snmp requestはあくまでCentOS機自身が発行するものです)

  • リクエストメッセージ、レスポンスメッセージを見る方法

    webサーバーとクライアントとのやりとりについて勉強したいと思い、リクエストメッセージとレスポンスメッセージを見るためにtelnetを利用してyahooなどへの接続を試みたのですが、telnetでの接続ができません。telnetで接続するには、どうしたらいいでしょうか?また、telnetを利用する以外でリクエストメッセージとレスポンスメッセージを見る方法はないでしょうか?よろしくお願いします。

  • LinuxサーバからSNMPレスポンスが返らない

    LinuxサーバにSNMPの設定を行ったところ、自サーバからは問題なくMIB情報を取得できましたが、別マシンのSNMPマネージャーよりGETをしてもレスポンスが返って来ません。 自サーバ:snmpwalk -c public localhost MIB取得OK LinuxサーバでパケットをキャプチャするとGETを受け取った後に、ICMPでDestination Unreachableが発生しています。(宛先は別マシン) なお、snmpd.logには特にログが吐き出されていません。 マシン構成はLinuxサーバがNICを2枚挿しで、それぞれ[192.168.0.100]と[192.168.1.100]を設定し、同じHUBに接続し、別マシンが同じHUBで[192.168.0.253]のアドレスを設定しています。 もちろん、Linuxサーバから別マシンへはpingは問題なく通ります。 レスポンスの返らない理由を教えてください。 また、対処方法が分かれば合わせて教えてください。

  • Windows Live メール エラー

    Hotmail アカウントでメッセージを送受信できません。 Hotmail サーバーに接続できません。Hotmail アカウントのメッセージを送受信するには、http://hotmail.live.com にアクセスするか、後でもう一度やり直してください。 サーバー エラー: 5102 サーバーの応答: Xfs request 'r' failed. Response code: 'InternalServerError', server response: '999 0' サーバー: 'http://mail.services.live.com/DeltaSync_v2.0.0/Sync.aspx' Windows Live メール エラー ID: 0x8DE20003 受信しようすると出てしまうのですが、どのように対処したら よいのでしょうか?よろしくお願いします。

  • 別サーバーへの書き込み

    別サーバーのファイルを以下のようにすると、読み込みは可能となりました。 このファイルに書き込むロジックを調べているのですが、 中々見つかりません。 どのようにすれば、書き込む事が出来るのでしょうか。 $url = "http://www.test.jp/test.dat"; require LWP::UserAgent; $ua = new LWP::UserAgent; $request = new HTTP::Request('GET', $url); $response = $ua->request($request); if ($response->is_success) { $content = $response->content; } @DATA = $content;

  • MRTG監視について

    Redhat8にMRTGをインストールし、WindowsNT,2000Serverの監視をしています。 トラフィックやメモリなどは監視設定済みなのですが、追加で、自作システムのログも監視対象に加えたいと考えています。 WindowsNT,2000上のログの値を監視サーバへSNMP RESPONSEで返せるようにし、 MRTGで監視できるようにしたいのですが、この場合の実現方法を教えてください。

  • java ネットワークプログラミングの本で

    こんにちは。趣味でプログラミングをしているものです。 さっそくですが、質問させていただきます。 「基礎からわかる TCP/IP Javaネットワークプログラミング」 の第2版の98ページに記載されている、内容をもとに サーバーへ リクエストを送り、 サーバーから レスポンスを受け取るコードを しろうとなりに作ってみたのですが... amazon でネットワークプログラミングの本をみてみると 大体が出版年度が古いものだったのですが... ------------------------------------------------------- DNSネーム : www.google.co.jp port番号 : 80 リクエスト : GET /index.html と入力してから、送信の終了である [ . ]を入力したら eclipseのコマンドプロンプトに レスポンスが返ってきたことはきたのですが、 状態コードが 200でなく302となっており、 通信がうまくいかなかったようなのですが、 ヘッダの詳しい内容というのがわかりません。 返されてきたhtmlの内容を見ると、 どうやら、昔のページにアクセスしたのかな、 と思うぐらいなのですが... ------------------------------------------------------- 以下のURLから2ばんめのリンク先にある テキストファイルにソースコードの全文および 返されてきたレスポンスを載せてありますので よろしければ見ていただきたいのですが... http://www.eonet.ne.jp/~mycabinet その上で、 どのようにすれば、正しいhtmlが返ってくるのでしょうか? ご存知の方、教えていただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • HTTPプロトコルについて

    telnetでwww.yahoo.co.jpサーバの80番ポートに接続し、 GET / HTTP/1.1 Host:www.yahoo.co.jp というリクエストをしたところ、画像のようなレスポンスが帰ってきました。 この空行の下にある数字はいったい何なんでしょうか?

  • CSRF対策について

    http://www.jumperz.net/texts/csrf.htm このサイトで紹介されている「正しい対策その1」がなぜCSRF対策として有効なのかわかりません。 このような方法をとったとしても、javascriptのXMLHttprequestを使って、リクエストを行い、それに対するレスポンスの中に含まれるであろう、秘密のワンタイムトークンを抽出して、それを含むリクエストを再度GETなりPOSTなりすれば、攻撃が成功してしまうのでは?

専門家に質問してみよう