• 締切済み

UDP通信について

はじめまして。 UDPの通信について教えて下さい。 送信元ポートと宛先ポートについてです。 機器A-機器Bで通信をする場合です。 両方の機器で同じアプリ(ポート番号10000)が起動しているとします。 機器Aから機器Bのアプリに対してフレームを送信した時、 送信元ポートはランダムな値(仮:5000)で宛先ポートは10000になると思います。 機器Bでフレームを受信した後、応答フレームを送信する時には 送信元ポート10000、宛先ポート5000になると思います。 機器Aで起動しているアプリのポート番号は10000ですので機器Bからの応答フレームの宛先ポート5000とは一致しません。 この場合、どのようにソフトは判断しているのでしょうか? 組み込みで評価ボードに同じアプリを実装してお互いに通信させるのが 目的です。

みんなの回答

  • taisato
  • ベストアンサー率0% (0/0)
回答No.3

はじめまして >機器Aで起動しているアプリのポート番号は10000ですので機器Bからの応答フレームの宛先ポート5000とは一致しません。 >この場合、どのようにソフトは判断しているのでしょうか? 判断は、単純にサーバとなる側のポートは10000として、 クライアントとなるポートは使用可能な範囲のランダム番号になると思います。 書かれている場合、AからBへの通信なので、 Bがサーバ(ホスト)、Aがクライアントになりますよね。 これは、UDPでもTCPでも同じです。

  • Gizensha
  • ベストアンサー率34% (207/608)
回答No.2

UDPはTCPのような応答は返さないプロトコルでないですか? >機器Aから機器Bのアプリに対してフレームを送信した時、 >送信元ポートはランダムな値(仮:5000)で宛先ポートは10000になると思います。 この直後に機器Aのポート5000は閉じられ、無効になっているはずです。 なので、機器Bから送信する際は機器Aのポート10000を指定するだけでいいはずですよ。

参考URL:
http://www5e.biglobe.ne.jp/~aji/3min/44.html
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

UDPはコネクションレス型です。 よって… >機器Bでフレームを受信した後、応答フレームを送信する時には >送信元ポート10000、宛先ポート5000になると思います。 とする必要はありません。 機器Aが待ち受けている宛先ポート10000へ送信すればよろしいかと。 送信元のポート番号に関しては通常はTCP/IPプロトコルスタックが空いているポート番号を使用します。 http://www.itbook.info/study/tcp4.html http://www.wakhok.ac.jp/~kanayama/summer/05/net/node92.html