Attualmente sto lavorando su un server UDP che riceve una richiesta da un client. Il datagramma che ricevo è un array di byte (char) lungo 5 elementi, con gli ultimi due elementi che sono un numero di porta.Estrazione dell'indirizzo IP e delle informazioni sulla porta da sockaddr_storage
Alla fine questo server dovrà restituire sia l'indirizzo IP che il numero di porta in un proprio datagramma.
So già come utilizzare inet_ntop e la struttura sockaddr con cui mi sono connesso e ricevuto per stampare l'ip, ma restituisce una stringa che non è nel formato che desidero. Per esempio:
string1 = inet_ntop(their_addr.ss_family,get_in_addr(
(struct sockaddr *)&their_addr),s, sizeof s);
rendimenti:
127.0.0.1
o:
[1][2][7][.][0][.][0][.][1]
quando ho bisogno di qualcosa di simile a:
[127][0][0][1]
Dovrei usare un qualche tipo di carattere e manipolazione di array per rendere il mio 4-elemento byt e array? O un sockaddr ha questa informazione in modo che io possa lasciarla in questa forma esadecimale e restituirla?
Questo è esattamente quello che stavo cercando. Conciso ed eccellente. Grazie @ Kludi – Ryanman