SOCKET m_hSocket;
m_hSocket = WSASocket(AF_INET, SOCK_DGRAM, 0, NULL, 0, 
WSA_FLAG_OVERLAPPED | WSA_FLAG_MULTIPOINT_C_LEAF | WSA_FLAG_MULTIPOINT_D_LEAF);
if (m_hSocket == INVALID_SOCKET){
TRACE("WSASocket:%d\n",WSAGetLastError());
return FALSE;
    }

解决方案 »

  1.   

    多播在nt4sp5可能不正常,但2000就完全可以。
    here is some code that runs fine on win2000 but fails for the multicast in
    nt4sp5
    int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)
    {
     ...
     iRet = WSAStartup (MAKEWORD (2, 2), &wsaData);
     sock = WSASocket (AF_INET, SOCK_DGRAM, NULL, NULL, 0,
    WSA_FLAG_MULTIPOINT_C_LEAF | WSA_FLAG_MULTIPOINT_D_LEAF);
     iRet = setsockopt (sock, SOL_SOCKET, SO_REUSEADDR, (char *) &bFlag, sizeof
    (BOOL));
    ...
    }