请问各位大虾  
1如果有两个网卡同时使用 用gethostbyname()取ip会出现什么情况?
2如果绑定ip设为“0”用udp发送时 会什么情况,两个都向外广播还是随机取一个网卡向外广播。 
 参与讨论就给分!!!!!!!! 

解决方案 »

  1.   

    gethostbyname会返回一个hostent结构,里面包含一个成员h_addr_list,它是一个数组 
    h_addr_list 
    Null-terminated list of addresses for the host. Addresses are returned in network byte order. The macro h_addr is defined to be h_addr_list[0] for compatibility with older software. 
      

  2.   

    有个例子//获得本机的ip
    char host_name[255];
    hostent *pHost;
    CString str,addr;
    WORD wVersionRequested;
    WSADATA wsaData;
    wVersionRequested = MAKEWORD( 2, 2 );
     
    WSAStartup( wVersionRequested, &wsaData ); gethostname(host_name,sizeof(host_name));    
            pHost = gethostbyname(host_name); 
            for(int i = 0; pHost!= NULL && pHost->h_addr_list[i]!= NULL; i++ ) 
    {       
    for( int j = 0; j < pHost->h_length; j++ ) 

    if( j > 0 ) 
    str += "."; 
    addr.Format("%u", (unsigned int)((unsigned char*)pHost->h_addr_list[i])[j]); 
    str += addr; 
     } 
    m_comboIp.InsertString(0, str);
    str = "";
    }
            WSACleanup();
      

  3.   

    2如果绑定ip设为“0”用udp发送时 会什么情况,两个都向外广播还是随机取一个网卡向外广播。怎样绑定ip设为“0”的?
    只有一个对外广播,选取哪个,得看绑定ip的情况
      

  4.   

    会取IP,就是不知道双网卡会出现什么情况
    设为0就是INADDR_ANY计算机自动绑定默认ip
      

  5.   

    1、gethostbyname返回的结构中包含所有IP地址。
    2、绑定0实际上就是没绑定,所有网卡都发送数据。