Actualmente estoy trabajando en un servidor UDP que recibe una solicitud de un cliente. El datagrama que recibo es una matriz de bytes (caracteres) de 5 elementos de longitud, con los dos elementos finales como un número de puerto.Extrayendo la dirección IP y la información del puerto de sockaddr_storage
Eventualmente este servidor tendrá que devolver tanto la dirección IP como el número de puerto en un datagrama propio.
Ya sé cómo usar inet_ntop y la estructura de sockaddr con la que me he conectado y recibido para imprimir la ip, pero devuelve una cadena que no está en el formato que quiero. Por ejemplo:
string1 = inet_ntop(their_addr.ss_family,get_in_addr(
(struct sockaddr *)&their_addr),s, sizeof s);
devuelve:
127.0.0.1
o:
[1][2][7][.][0][.][0][.][1]
cuando necesito algo como:
[127][0][0][1]
debo utilizar algún tipo de carácter y manipulación de matriz para hacer mi byte de 4 elementos e matriz? ¿O una sockaddr tiene esta información de manera que puedo dejarla en esta forma hexadecimal y devolverla?
Esto es exactamente lo que estaba buscando. Conciso y excelente. Gracias @Kludas – Ryanman