Come posso ottenere l'indirizzo IP di origine dall'intestazione IP di un datagramma con Winsock?
Domanda
Ho una porta che è bind () 'd in INADDR_ANY. Ricevo i datagrammi con successo. Dopo la ricezione, devo leggere l'intestazione IP per ottenere l'indirizzo IP di origine.
Soluzione
Non credo che tu possa ottenerlo se stai usando le chiamate di funzione standard recv o read. La chiamata recvfrom come segue:
int recvfrom(
__in SOCKET s,
__out char *buf,
__in int len,
__in int flags,
__out struct sockaddr *from,
__inout_opt int *fromlen
);
include una struttura (dal penultimo campo in alto) che riceverà l'indirizzo sorgente che puoi esaminare per qualsiasi scopo tu desideri.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow