// 消息处理 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 }
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 ); }