Я попытался найти IP-адрес, к которому привязан мой сокет UDP (при условии, что я не хочу использовать другой метод для определения IP-адреса компьютера). Как это может быть сделано? Код ниже работает для номера порта, но всегда возвращает 0.0.0.0 для адреса:
struct sockaddr_in sin;
int addrlen = sizeof(sin);
if(getsockname(clientSock, (struct sockaddr *)&sin, &addrlen) == 0 &&
sin.sin_family == AF_INET &&
addrlen == sizeof(sin)){
printf("RETURNING ADDR: %s: len = %d\n", inet_ntoa(sin.sin_addr),
strlen(inet_ntoa(sin.sin_addr)));
}
Сокет был связан с использованием следующего кода:
sockaddr_in local;
local.sin_family = AF_INET;
local.sin_addr.s_addr = INADDR_ANY;//inet_addr("127.0.0.1");
local.sin_port = 0; //assign given port
result = bind(clientSock, (sockaddr*)&local, sizeof(local));
Спасибо за любую помощь. Я ценю ваше время!