Re: UDP通信でポート開放が必要なのは ( No.1 ) |
- 名前:管理人 日時:2010/12/26 19:19
試したことがないのでこちらの記事
http://www.atmarkit.co.jp/fwin2k/experiments/skype02/skype02_04.html
からの推測になってしまいますが、
接続を待つ側だけで大丈夫なはずです
ただ、MakeUDPSocket の第一引数でポート番号を指定して、そのポート番号にデータを
送信してもらうことと、データの受信と送信に同じソケットハンドルを使用する
必要があることの二点を守る必要があると思います
接続をする側がポート解放しなくても良い理屈は
接続をする側がUDPパケットを接続を待っている側に送信した際に
ルータはそのパケットに刻まれている送信元ポートと送信先ポートを一時的に記憶しておくらしいのです、
そして逆に接続を待っている側から接続をする側に送られたUDPパケットを受け取った場合は、
そのUDPパケットに刻まれている「送信先ポート」として「UDPパケットを送信したときの送信元ポート」が
指定されていた場合は、ポート開放をしていなくても無事接続した側のマシンに接続を待つ側からのUDPパケットが
届くようになっているらしいです
ただ、その「ルータが一時的に記憶している時間」がどのくらいか分からないので、
何も送受信しあう情報が無くても定期的にUDPパケットを飛ばしあう必要が
あるかもしれません
|
Re: UDP通信でポート開放が必要なのは ( No.2 ) |
- 名前:楡バス 日時:2010/12/27 09:45
前々から疑問に思っていたことが解消しました。
大変分かりやすいご説明ありがとうございました。
|
Re: UDP通信でポート開放が必要なのは ( No.3 ) |
- 名前:楡バス(解決) 日時:2010/12/27 09:47
(解決)付け忘れました^^;
|