少なくともほとんどの人が考えるのに慣れているという意味では、「開いた」UDPポートのようなものはありません(「OK、接続を受け入れました」のようなものに答えています)。UDPはセッションレスであるため、「ポート」(読み取り:オペレーティングシステムIPスタック内のUDPプロトコル)は、それ自体では「成功」に応答しません。
UDPポートには、リスニング状態かそうでないかの2つの状態しかありません。これは通常、「プロセスによってソケットが開かれている」または「ソケットが開かれていない」という意味です。システムはcode = 3(ポート到達不能)のICMP Destination Unreachableパケットで応答する必要があるため、後者のケースは簡単に検出できるはずです。残念ながら、多くのファイアウォールはこれらのパケットをドロップする可能性があるため、何も返されない場合、ポートがこの状態にあるかどうかはわかりません。ICMPもセッションレスであり、再送信を行わないことを忘れないでください。PortUnreachableパケットは、ネット上のどこかで非常によく失われる可能性があります。
「リスニング」状態のA UDPポートよく、またはプロセスが受信時に行為をした場合、それは(何かのバックを送ることができ、すべての(それだけでパケットを受信し、送信何もしないで、プロセスのリスニング)でない応答し、それがすることによって作用する場合UDPを介して元の送信者IP:portに応答する)。繰り返しになりますが、何も返されない場合、どのような状態であるかは確実にわかりません。
あなたが受け取るホストの制御を持つことができると言う:UDPポートの到達可能性をチェックするために、独自のプロトコルを構築するあなたができるようになり、その:ただ与えられたUDPポートをリッスンよ受信ホスト上のプロセスを置くと応答バック(またはあなたを送ります電子メール、または単に驚いてunlink()
ホストファイルシステム上のすべて...あなたの注意を引くものは何でもします)。