Comprobando el puerto UDP abierto en C ++

¿Cómo puedo verificar si un puerto UDP remoto está abierto usando C ++ nativo? Dado que UDP no tiene conexión, las llamadasconnect() no es de ayuda No puedo intentar enlazarlo ya que no es local.nmap no puede también indicar. (sin embargonetstat puede averiguarlo, pero creo que mira información interna sobre puertos / archivos abiertos). ¿Hay alguna forma de detectarlo? Si desciendo una capa en el nivel de la red, ¿es posible enviar un mensaje ICMP por C ++ para verificar el estado de puerto inaccesible? Quiero decir, ¿eso daría suficiente información sobre el estado del puerto?

La plataforma es Linux.

Respuestas a la pregunta(2)

Su respuesta a la pregunta