As portas UDP têm apenas dois estados: escutar ou não. Isso geralmente se traduz em "ter um soquete aberto nele por um processo" ou "não ter nenhum soquete aberto". O último caso deve ser fácil de detectar, pois o sistema deve responder com um pacote ICMP Destination Unreachable com código = 3 (porta inacessível ). Infelizmente muitos firewalls poderiam cortar esses pacotes, então se você não obtiver nada de volta, você não tem certeza se a porta está nesse estado ou não. E não vamos esquecer que o ICMP é uma sessão a menos e não faz retransmissões: o pacote Port Unreachable pode muito bem ser perdido em algum lugar na rede.
Uma porta UDP no estado de "escuta" não pode responder a nada (o processo escuta apenas recebe o pacote e não transmite nada) ou pode enviar algo de volta (se o processo atuar na recepção e se atuar respondendo via UDP ao IP original do remetente: port), então, novamente, você nunca saberá ao certo qual é o estado se não receber nada de volta.
Você diz que pode ter controle do host de recebimento: isso faz com que você consiga construir seu próprio protocolo para verificar a acessibilidade da porta UDP: basta colocar um processo no host de recebimento que ouvirá na porta UDP especificada e responda (ou envie um e-mail, ou apenas surte e unlink()
tudo no sistema de arquivos do host ... qualquer coisa que acione sua atenção).