ページ 11

UDP送受信時の送信元ポート番号指定について

Posted: 2015年9月09日(水) 21:11
by coco
今更の話で大変恐縮で御座いますが、UDPホールパンチングを用いたUDP送受信において送信元ポート番号を指定する必要があると認識しております。
例(Javaの場合
DatagramSocket socket = new DatagramSocket(送信元port番号);
によってバインドした状態でソケットを生成。

逆にUDP受信の場合は.receiveを用いてパケットが送られてくるまで無限ループで待機するのが一般的かと考えておりました。


この場合、受信ループにおいて送信元ポート番号が使用(バインド)されているため、このままでは送信の際にバインドエラーが発生してしまいます。
そのため現在送信時には一旦受信ループを解除し、送信完了後また受信ループを開始するといういささか面倒な手法を取っております。

しかしながらこのやり方ではUDPの速さを生かせていない様に感じ、一般的な送受信の組み方はどのような方法なのかを知りたく質問致しました