在本机上写了一个简单的基于TCP的客户端和服务器端的通信程序,服务器端程序开启的时候总是提示:bind错误,用WSAGetLastError()获取错误类型为10049。
memset(&server_addr,0,sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port =htons(7000);
server_addr.sin_addr.s_addr=inet_addr(INADDR_ANY);
对于10049错误类型的解释为:
1 0 0 4 9 —W S A E A D D R N O TAVA IL
不能分配请求的地址。A P I 调用中指定的地址对那个函数来说无效时,就会产生这样的错误。例如,若在b i n d 调用中指定一个I P 地址,但却没有对应的本地I P 接口,便会产生这样的错误。另外,通过c o n n e c t 、W S A C o n n e c t 、s e n d t o 、W S A S e n d To 和W S A J o i n L e a f 这四个函数为 准备连接的远程计算机指定端口0 时,也会产生这样的错误。
换了几个不同的端口,错误依旧.网上查找原因,也没得到解决。关掉防火墙也没得到解决。最后把:server_addr.sin_addr.s_addr=inet_addr(INADDR_ANY);
改为:server_addr.sin_addr.s_addr=inet_addr(“127.0.0.1”);
错误解决。不明白为何会这样。