如题

解决方案 »

  1.   

    我用下面的代码来设置,为什么还是不能收到广播包?
    ret = setsockopt(m_SckRecive,SOL_SOCKET,SO_BROADCAST,(char *)&broad_cast,sizeof(BOOL));
      

  2.   

    s = socket( AF_INET, SOCK_DGRAM, 0 );    if( s == INVALID_SOCKET ){
            int err = WSAGetLastError();
            return FALSE;
        }
        
        BOOL    fBroadcast = TRUE;    if( setsockopt( s, SOL_SOCKET, SO_BROADCAST, (char*)&fBroadcast, sizeof(BOOL) ) == SOCKET_ERROR ){
            int err = WSAGetLastError();
            return FALSE;
        }    SOCKADDR_IN        addr;    addr.sin_family = AF_INET;
        addr.sin_port = htons(8972);
        addr.sin_addr.s_addr = htonl(INADDR_ANY);    if( bind( s, (SOCKADDR*)&addr, sizeof(SOCKADDR_IN) ) == SOCKET_ERROR ){
            int err = WSAGetLastError();
            return FALSE;
        }SOCKADDR_IN        addr;
        int                iRet;
        int                ret;    addr.sin_family = AF_INET;
        addr.sin_port = htons(8972);
        addr.sin_addr.s_addr = inet_addr( "10.1.1.255" );
        iRet = sizeof(SOCKADDR);    ret = recvfrom( s, (char*)lpBuf, size, 0, (SOCKADDR*)&addr, &iRet );
      

  3.   

    单播包的目的端口为socket绑定的端口号相同即可