我試圖找到我的UDP套接字綁定的IP地址(假設我不想使用其他方法來查找計算機的IP地址)。如何才能做到這一點?下面的代碼工作的端口號,但總是返回爲0.0.0.0地址:如何從UDP套接字(Windows C++)獲取IP信息?
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));
謝謝你的任何和所有幫助。我感謝你的時間!
套接字將通過多個接口接收數據報。但是,可以確定任何給定的傳入數據報經過哪個接口。 –