一块网卡的地址是 192.168.3.111
一块网卡的地址是 202.100.12.55同一个套接字分别BIND到这两个地址行吗?

解决方案 »

  1.   

    有双网卡的朋友帮忙试一下,,我这里没双网卡/
    void CBindDlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here WSADATA wsa;    
        WSAStartup(MAKEWORD(2,2), &wsa);
    s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (INVALID_SOCKET == s)
    {
    AfxMessageBox("Create socket failed"); return;
    }}void CBindDlg::OnButton2() 
    {
    // TODO: Add your control notification handler code here struct sockaddr_in server;
    server.sin_family = AF_INET;
    server.sin_port = htons(12015);
    server.sin_addr.s_addr = inet_addr("192.168.3.211");

    int nResult = bind(s, (sockaddr*)&server, sizeof(server));
    if (nResult != 0)
    {
    AfxMessageBox("bind failed");
    return;
    }
    nResult = listen(s, 5);
    if (nResult != 0)
    {
    AfxMessageBox("bind failed");
    return;
    }

    }void CBindDlg::OnButton3() 
    {
    // TODO: Add your control notification handler code here struct sockaddr_in server;
    server.sin_family = AF_INET;
    server.sin_port = htons(12011);
    server.sin_addr.s_addr = inet_addr("192.168.3.199");

    int nResult = bind(s, (sockaddr*)&server, sizeof(server));
    if (nResult != 0)
    {
    AfxMessageBox("bind failed");
    return;
    }
    nResult = listen(s, 5);
    if (nResult != 0)
    {
    AfxMessageBox("bind failed");
    return;
    }


    }
      

  2.   

    理论上可以的,只要把bind的地址设置成INADDR_ANY
      

  3.   

    问题是我要针对不同的网卡LISTEN不同的端口
    如果同一个套接字不行
    只要针对每个建立一个套接字了