zoukankan      html  css  js  c++  java
  • 关于socket通信bind()返回值错误:10049

    这个问题,我差点和客户吵起来了。我的电脑确实没有问题,客户电脑却会经常出现,。今天查了下,居然是这种问题,大意了,在这里记录下。

    服务器端程序开启的时候总是提示: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 I L
    不能分配请求的地址。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 时,也会产生这样的错误

    最后经过一个网友的指点,

    服务端是不能够用INADDR_ANY的  因为这个表示是主机上任意的地址,但是你还不知道服务器端的IP地址,你怎么找到服务器? 所以这里应该把INADDR_ANY设置为一个真正的IP地址,   INADDR_ANY只能用于发送端(就是说,我要发送某个东西,可以采用我的任意的IP,而接受的IP必须是一个我们能找到它的位置的IP)

    完美解决,大喜。

    2017/8/18 我现在觉得出现这个问题的原因会不会是上网卡的原因。

  • 相关阅读:
    406. 根据身高重建队列 vector 自定义排序
    5552. 到家的最少跳跃次数 BFS
    5602. 将 x 减到 0 的最小操作数 双指针
    Hadoop Container is running beyond memory limits code143
    1122. 数组的相对排序 自定义排序
    328. 奇偶链表 链表
    127. 单词接龙 bfs
    5600. 第 K 条最小指令 组合数学
    5548. 最小体力消耗路径 二分
    1024. 视频拼接 dp
  • 原文地址:https://www.cnblogs.com/techdreaming/p/7324885.html
Copyright © 2011-2022 走看看