Domanda

After accepting data from a socket, can I view the header for the data? I want to know what IP address the packet was sent to as I am listening on multiple interfaces.

È stato utile?

Soluzione

You can use getsockname to fetch the local IP address of the socket.

int getsockname(int socket, struct sockaddr *restrict address,
       socklen_t *restrict address_len);

Here is an example:

struct sockaddr_in addr;
socklen_t len = sizeof(addr);
memset(&addr, 0, sizeof(addr));

getsockname(s, &addr, &len);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top