无法分配请求的地址,C ++ UDP套接字

下面的代码是从http://digitalpbk.blogspot.com/2007/10/unix-networking-sockets-udp-transmitter.html ,它运行良好的本地主机,但是当我改变它到我的IP它给出了错误

bind():无法分配请求的地址

我一直在寻找一个解决scheme几个小时,所以任何帮助将是伟大的

int main(void) { struct sockaddr_in sin; char msg[10000]; int ret; int sin_length; int s; s = socket(AF_INET, SOCK_DGRAM, 0); if(!s) { perror("socket()"); return 0; } sin.sin_family = AF_INET; sin.sin_port = htons(65000); sin.sin_addr.s_addr = inet_addr("24.212.11.211"); // ---------------- This line ---------------- if(bind(s, (struct sockaddr *)&sin, sizeof(sin))) { perror("bind()"); return 1; } do // I think the following might be a problem { sin_length = sizeof(sin); ret = recvfrom(s, msg, 10000, 0, (struct sockaddr *)&sin, (socklen_t*) &sin_length); //Waits until a message is recieved... printf("Message[%s:%d] : %s\n", inet_ntoa(sin.sin_addr), sin.sin_port,msg); } while(msg[0]!='0'); close(s); return 0; } 

最有可能的是,你将其转变为人们认为你的知识产权,而不是你自认为的知识产权。 (假设从功能参数窗口)进入开始 – >控制面板 – >(网络和互联网 – >)网络连接/更改网络适配器设置,然后右键单击您的网络适配器并选择状态,查看IP地址,这是你应该在你的代码中使用的那个。 如果你不想担心这个问题,你总是可以使用BIND TO ALL THE THINGS地址,0.0.0.0。