none
win7下 3.5g网络下程序的问题 RRS feed

  • 问题

  • 我编写的一个程序在win7  3.5G网络下运行会出现一个问题 程序代码如下:

    Int SocketCheckCableConnection()
    {
     Int ret = 0;
     Int select_ret = 0;
     fd_set rfd;
     SOCKET usock;
     struct sockaddr_in local;
     struct timeval timeout;
     struct ip_mreq  imr;

     if (SocketLibInit())
     {
      ret = -1;
      goto CheckCableConnectionExit;
     }
     //open sock test
     usock = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
     if(usock == ASTSOCKET_INVALIDSOCKET)
     {
      ogln("socket fail");
      ret = -1;
      goto CheckCableConnectionExit;
     }

     //bind test
     local.sin_family      = AF_INET;
     local.sin_addr.s_addr = INADDR_ANY;
     local.sin_port        = htons(12701);
     if (bind(usock, (struct sockaddr *) &local, sizeof(local)) != 0)
     {
      ret = -1;
      DebugLogln("bind fail");
      goto CheckCableConnectionExit;

     }

     //multicast test
     if(IN_MULTICAST(htonl(inet_addr("224.1.2.9"))))
     {
      imr.imr_multiaddr.s_addr = inet_addr("224.1.2.9");//local.sin_addr.s_addr;
      imr.imr_interface.s_addr = 0;
      if (setsockopt(usock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *) &imr,
       sizeof(struct ip_mreq)) != 0)
      {
       int err = SOCKET_GETLASTERROR();
       Logln("setsockopt fail = %d", err);
       goto CheckCableConnectionExit;
      }
     }

     //select test
     FD_ZERO(&rfd);
     FD_SET(usock, &rfd);
     timeout.tv_sec  = 0;
     timeout.tv_usec = 200;
     select_ret = select(0, &rfd, NULL, NULL, &timeout);
     if(select_ret <0)
     {
      Logln("select fail");
      ret = -1;
      goto CheckCableConnectionExit;
     }

    CheckCableConnectionExit:
    closesocket(usock);

      return 0;
    }


    setsockopt 函数会返回一个错误,错误代码 10055

    2009年12月18日 3:13

答案

  • 可以肯定的是,这个问题和具体是什么网络无关。

    http://topic.csdn.net/t/20010704/02/180654.html

    你可以参考一下七楼的建议,他说的是对的。
    2009年12月18日 3:24
    版主

全部回复

  • 可以肯定的是,这个问题和具体是什么网络无关。

    http://topic.csdn.net/t/20010704/02/180654.html

    你可以参考一下七楼的建议,他说的是对的。
    2009年12月18日 3:24
    版主
  • 但是,只有在3.5G网络的情况下才报错,尔如果用无线,或者有线网络都没有问题,在vista的3.5G网络下运行也没有问题
    2009年12月18日 3:56