// 消息处理
VOID CFileClient::OnThreadMsgExecute(LPMSG lpMsg)
{
    switch (lpMsg->message)
    {
    case MSM_CLIENT_SOCKET_ON_ENTER:
        {
            CMsServerSocket* lpSocket = (CMsServerSocket*)lpMsg->wParam;
            C2S_Connect::MS_PACKET_DATA PacketData;
            _tcscpy_s(PacketData.sz_Password, MAX_PATH, m_szPassword);
            lpSocket->WritePacket(BPT(C2S_Connect), &PacketData);
            _tcout << _T("连接服务器\n");
        }break;

    case MSM_CLIENT_SOCKET_ON_EXIT:
        {
            _tcout << _T("断开服务器\n");
        }break;

    case MSM_MSG_SOCKET_EXECUTE:
        {
        }break;

    default:
        {
            ;
        }break;
    }
}
// 飞文件
BOOL CFileServer::FlyFile(DWORD dwIndex, TCHAR* szFileName)
{
    S2C_FileInfo::MS_PACKET_DATA PacketData;
    HANDLE hFile = ::CreateFile(szFileName, FILE_ALL_ACCESS, 0, NULL, OPEN_EXISTING, 0, NULL);
    PacketData.dwFileSize = ::GetFileSize(hFile, NULL);
    _tcscpy_s(PacketData.szFileName, MAX_PATH, szFileName);
    DWORD dwFlySize = sizeof(m_S2C_FlyFileData.m_Data);
    BOOL bRet = FALSE;
    bRet = m_lpCMsServerNetManager->GetClientSocket(dwIndex)->WritePacket(BPT(S2C_FileInfo), &PacketData);

    while (PacketData.dwFileSize)
    {
        if (PacketData.dwFileSize > dwFlySize)
        {
            ::ReadFile(hFile, m_S2C_FlyFileData.m_Data, dwFlySize, &dwFlySize, NULL);
            PacketData.dwFileSize -= dwFlySize;
            _tcout << PacketData.dwFileSize << std::endl;
            while (!bRet)
            {
                bRet = m_lpCMsServerNetManager->GetClientSocket(dwIndex)->WritePacket(BPT(S2C_FlyFile), &m_S2C_FlyFileData);
            }
            bRet = FALSE;
        }
    }
    return TRUE;
}
BOOL C2S_Connect::ExecutePacket(CMsSocket* lpCMsSocket)
{
    USE_PARAM(lpCMsSocket);
    LPMS_PACKET_DATA lpData = (LPMS_PACKET_DATA)lpCMsSocket->GetPacketData();
    
    S2C_Connect::MS_PACKET_DATA PacketData;
    if (0 == _tcscmp(lpData->sz_Password, g_pCFileServer->GetPassword()))
    {
        _tcout << _T("·â°ü\t") << _T("µÇ½·þÎñÆ÷³É¹¦\n");
        PacketData.m_bOK = TRUE;
        lpCMsSocket->WritePacket(BPT(S2C_Connect), &PacketData);
        return TRUE;
    }
    else
    {
        _tcout << _T("·â°ü\t") << _T("µÇ½·þÎñÆ÷ʧ°Ü\n");
        PacketData.m_bOK = FALSE;
        lpCMsSocket->WritePacket(BPT(S2C_Connect), &PacketData);
        return FALSE;
    }
}
BOOL C2S_Connect::ExecutePacket(CMsSocket* lpCMsSocket)
{
    USE_PARAM(lpCMsSocket);
#ifdef MS_RRGAME_SERVER
    LPMS_PACKET_DATA lpData = (LPMS_PACKET_DATA)lpCMsSocket->GetPacketData();
    if (lpData->m_dwData == CONNECT_KEY)
    {
        g_pMsLog->Logf(_T("客户端[%08X]进入服务器\n"), lpCMsSocket->GetSocket());
        S2C_Connect S2C_Packet;
        S2C_Connect::MS_PACKET_DATA PacketData;
        PacketData.m_dwData = CONNECT_KEY;
        lpCMsSocket->WritePacket(BPT(S2C_Connect), &S2C_Packet, sizeof(PacketData));
        return TRUE;
    }
    g_pMsLog->Logf(_T("客户端[%08X]进入服务器但Key错误\n"), lpCMsSocket->GetSocket());
    return FALSE;
#else
    return FALSE;
#endif
}
Beispiel #5
0
void test_basic_interpolation() {
    char *s = "a_string";
    double f = 3.14159;
    bson_bool_t bb = 1;
    time_t t = time(0);
    char *x = "a symbol";
    int i = 123;
    long l = 456789L;
    bcon basic_interpolation[] = {"string", BPS(&s), "f(double)", BPF(&f), "boolean", BPB(&bb), "time", BPT(&t), "symbol", BPX(&x), "int", BPI(&i), "long", BPL(&l), BEND};
    test_bson_from_bcon( basic_interpolation, BCON_OK, BSON_VALID );
}