Sto creando un programma C in cui è necessario verificare la presenza di porte UDP aperte nel computer di destinazione. Poiché UDP è senza connessione, non riesco a controllare il valore restituito di connect()
come se fosse possibile con TCP.Come posso sapere se ho inviato un pacchetto UDP a una porta aperta?
send()
e sendto()
valori di ritorno non sono di aiuto. La pagina di manuale indica:
No indication of failure to deliver is implicit in a send(). Locally
detected errors are indicated by a return value of -1.
Come posso sapere se ho inviato un pacchetto UDP a una porta aperta sull'host di destinazione?
Ci scusiamo per questo, ma come faccio a vedere se mi ha inviato la porta ICMP-irraggiungibile? Grazie. – Marian
@Marian: puoi fare un'altra domanda per questo? Mi piacerebbe anche saperlo. –
In realtà non penso che valga la pena di preoccuparsi di rilevare la porta ICMP, irraggiungibile, poiché potrebbe non arrivare. Questo è particolarmente vero per i computer che hanno installato dei "firewall personali" che tendono a bloccare tali cose utili per (per lo più) ragioni di sicurezza sbagliate. – MarkR