В приведенной ниже функции после использования sendto () я хочу узнать IP-адрес источника и порт, используемый для отправки сообщения. Можно ли это выяснить?
void sendMsg(char* payload, size_t payloadLength, const char* ip6Addr, short port)
{
int sock;
size_t size;
socklen_t clilen;
struct sockaddr_in6 server_addr, client_addr;
sock = socket(PF_INET6, SOCK_DGRAM, 0);
if (sock < 0) {
perror("creating socket");
exit(1);
}
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin6_family = AF_INET6;
inet_pton(AF_INET6, ip6Addr, &server_addr.sin6_addr);
server_addr.sin6_port = htons(port);
size = sendto(sock, payload, payloadLength, 0 , (const struct sockaddr *) &server_addr,sizeof(server_addr));
if(size < 0)
printf("Error in sending message\n");
else
printf("[%d] bytes written to network\n",size);
}