layout: Refactor the socket server code

This commit is contained in:
yuanyuanxiang
2025-06-30 04:35:38 +08:00
parent 017a8c8fa2
commit 3e5d45df6b
28 changed files with 259 additions and 221 deletions

View File

@@ -22,7 +22,7 @@ CMy2015RemoteApp* GetThisApp() {
}
config& GetThisCfg() {
config *cfg = GetThisApp()->m_iniFile;
config *cfg = GetThisApp()->GetCfg();
return *cfg;
}
@@ -77,7 +77,6 @@ CMy2015RemoteApp::CMy2015RemoteApp()
m_Mutex = NULL;
std::string masterHash(skCrypt(MASTER_HASH));
m_iniFile = GetPwdHash() == masterHash ? new config : new iniFile;
m_iocpServer = new IOCPServer();
srand(static_cast<unsigned int>(time(0)));
}
@@ -141,7 +140,7 @@ BOOL CMy2015RemoteApp::InitInstance()
// <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>Ϊ<EFBFBD><CEAA>˾<EFBFBD><CBBE><EFBFBD><EFBFBD>֯<EFBFBD><D6AF>
SetRegistryKey(_T("Remoter"));
CMy2015RemoteDlg dlg(m_iocpServer);
CMy2015RemoteDlg dlg(nullptr);
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
@@ -174,12 +173,8 @@ int CMy2015RemoteApp::ExitInstance()
CloseHandle(m_Mutex);
m_Mutex = NULL;
}
if (m_iocpServer != NULL)
{
m_iocpServer->Destroy();
delete m_iocpServer;
m_iocpServer = NULL;
}
Delete();
SAFE_DELETE(m_iniFile);
return CWinApp::ExitInstance();

View File

@@ -18,20 +18,62 @@
class CMy2015RemoteApp : public CWinApp
{
private:
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ȡ<EFBFBD><C8A1>
config* m_iniFile = nullptr;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
std::vector<Server*> m_iocpServer;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HANDLE m_Mutex = nullptr;
public:
CMy2015RemoteApp();
config *m_iniFile;
HANDLE m_Mutex;
Server* m_iocpServer;
CImageList m_pImageList_Large; //ϵͳ<CFB5><CDB3>ͼ<EFBFBD><CDBC>
CImageList m_pImageList_Small; //ϵͳСͼ<D0A1><CDBC>
// <20><>д
public:
virtual BOOL InitInstance();
// ʵ<><CAB5>
config* GetCfg() const {
return m_iniFile;
}
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>0
UINT StartServer(pfnNotifyProc NotifyProc, pfnOfflineProc OffProc, USHORT uPort) {
auto svr = new IOCPServer();
UINT ret = svr->StartServer(NotifyProc, OffProc, uPort);
if (ret != 0) {
SAFE_DELETE(svr);
return ret;
}
m_iocpServer.push_back(svr);
return 0;
}
// <20>ͷŷ<CDB7><C5B7><EFBFBD><EFBFBD><EFBFBD> SOCKET
void Destroy() {
for (int i=0; i<m_iocpServer.size(); ++i)
{
m_iocpServer[i]->Destroy();
}
}
// <20>ͷŷ<CDB7><C5B7><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
void Delete() {
for (int i = 0; i < m_iocpServer.size(); ++i)
{
SAFE_DELETE(m_iocpServer[i]);
}
m_iocpServer.clear();
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void UpdateMaxConnection(int maxConn) {
for (int i = 0; i < m_iocpServer.size(); ++i)
{
m_iocpServer[i]->UpdateMaxConnection(maxConn);
}
}
DECLARE_MESSAGE_MAP()
virtual int ExitInstance();

View File

@@ -278,9 +278,8 @@ std::vector<DllInfo*> ReadAllDllFilesWindows(const std::string& dirPath) {
return result;
}
CMy2015RemoteDlg::CMy2015RemoteDlg(Server* iocpServer, CWnd* pParent): CDialogEx(CMy2015RemoteDlg::IDD, pParent)
CMy2015RemoteDlg::CMy2015RemoteDlg(CWnd* pParent): CDialogEx(CMy2015RemoteDlg::IDD, pParent)
{
m_iocpServer = iocpServer;
m_hExit = CreateEvent(NULL, TRUE, FALSE, NULL);
m_hIcon = THIS_APP->LoadIcon(IDR_MAINFRAME);
@@ -1038,16 +1037,12 @@ void CMy2015RemoteDlg::Release(){
for(int Pos = 0; Pos < n; ++Pos)
{
CONTEXT_OBJECT* ContextObject = (CONTEXT_OBJECT*)m_CList_Online.GetItemData(Pos);
m_iocpServer->Send2Client(ContextObject, &bToken, sizeof(BYTE));
ContextObject->Send2Client( &bToken, sizeof(BYTE));
}
LeaveCriticalSection(&m_cs);
Sleep(500);
if (m_iocpServer != NULL)
{
m_iocpServer->Destroy();
m_iocpServer = NULL;
}
THIS_APP->Destroy();
g_2015RemoteDlg = NULL;
SetEvent(m_hExit);
CloseHandle(m_hExit);
@@ -1449,7 +1444,7 @@ VOID CMy2015RemoteDlg::SendSelectedCommand(PBYTE szBuffer, ULONG ulLength)
continue;
}
// 发送获得驱动器列表数据包
m_iocpServer->Send2Client(ContextObject,szBuffer, ulLength);
ContextObject->Send2Client(szBuffer, ulLength);
}
LeaveCriticalSection(&m_cs);
}
@@ -1485,7 +1480,7 @@ void CMy2015RemoteDlg::OnMainSet()
Dlg.DoModal(); //模态 阻塞
if (nMaxConnection != Dlg.m_nMax_Connect)
{
m_iocpServer->UpdateMaxConnection(Dlg.m_nMax_Connect);
THIS_APP->UpdateMaxConnection(Dlg.m_nMax_Connect);
}
int m = atoi(THIS_CFG.GetStr("settings", "ReportInterval", "5").c_str());
int n = THIS_CFG.GetInt("settings", "SoftwareDetect");
@@ -1593,9 +1588,8 @@ std::vector<std::string> splitByNewline(const std::string& input) {
BOOL CMy2015RemoteDlg::Activate(int nPort,int nMaxConnection)
{
assert(m_iocpServer);
UINT ret = 0;
if ( (ret=m_iocpServer->StartServer(NotifyProc, OfflineProc, nPort)) !=0 )
if ( (ret = THIS_APP->StartServer(NotifyProc, OfflineProc, nPort)) !=0 )
{
Mprintf("======> StartServer Failed \n");
char cmd[200];
@@ -1735,7 +1729,7 @@ VOID CMy2015RemoteDlg::MessageHandle(CONTEXT_OBJECT* ContextObject)
resp[0] = 0;
memcpy(resp+1, &dll, sizeof(DllSendData));
memcpy(resp+1+sizeof(DllSendData), bin->c_str() + 6, dll.DataSize);
m_iocpServer->Send2Client(ContextObject, resp, 1 + sizeof(DllSendData) + dll.DataSize);
ContextObject->Send2Client(resp, 1 + sizeof(DllSendData) + dll.DataSize);
SAFE_DELETE_ARRAY(resp);
break;
}
@@ -1757,7 +1751,7 @@ VOID CMy2015RemoteDlg::MessageHandle(CONTEXT_OBJECT* ContextObject)
std::string hmac = genHMAC(hash, m_superPass);
memcpy(resp + 64, hmac.c_str(), hmac.length());
resp[80] = 0;
m_iocpServer->Send2Client(ContextObject, (LPBYTE)resp, sizeof(resp));
ContextObject->Send2Client((LPBYTE)resp, sizeof(resp));
break;
}
case CMD_EXECUTE_DLL: // 请求DLL
@@ -1766,7 +1760,7 @@ VOID CMy2015RemoteDlg::MessageHandle(CONTEXT_OBJECT* ContextObject)
for (std::vector<DllInfo*>::const_iterator i=m_DllList.begin(); i!=m_DllList.end(); ++i){
DllInfo* dll = *i;
if (dll->Name == info->Name) {
return m_iocpServer->Send2Client(ContextObject, dll->Data->Buf(), dll->Data->length());
return ContextObject->Send2Client( dll->Data->Buf(), dll->Data->length());
}
}
break;
@@ -1995,7 +1989,7 @@ void CMy2015RemoteDlg::UpdateActiveWindow(CONTEXT_OBJECT* ctx) {
HeartbeatACK ack = { hb.Time };
BYTE buf[sizeof(HeartbeatACK) + 1] = { CMD_HEARTBEAT_ACK};
memcpy(buf + 1, &ack, sizeof(HeartbeatACK));
m_iocpServer->Send2Client(ctx, buf, sizeof(buf));
ctx->Send2Client(buf, sizeof(buf));
}
CLock L(m_cs);
@@ -2019,7 +2013,7 @@ void CMy2015RemoteDlg::SendMasterSettings(CONTEXT_OBJECT* ctx) {
memcpy(buf+1, &m_settings, sizeof(MasterSettings));
if (ctx) {
m_iocpServer->Send2Client(ctx, buf, sizeof(buf));
ctx->Send2Client(buf, sizeof(buf));
}
else {
EnterCriticalSection(&m_cs);
@@ -2028,7 +2022,7 @@ void CMy2015RemoteDlg::SendMasterSettings(CONTEXT_OBJECT* ctx) {
CONTEXT_OBJECT* ContextObject = (CONTEXT_OBJECT*)m_CList_Online.GetItemData(i);
if (!ContextObject->bLogin)
continue;
m_iocpServer->Send2Client(ContextObject, buf, sizeof(buf));
ContextObject->Send2Client(buf, sizeof(buf));
}
LeaveCriticalSection(&m_cs);
}
@@ -2043,9 +2037,9 @@ VOID CMy2015RemoteDlg::SendServerDll(CONTEXT_OBJECT* ContextObject, bool isDLL,
char md5[33] = {};
memcpy(md5, (char*)ContextObject->InDeCompressedBuffer.GetBuffer(32), max(0,min(32, len-32)));
if (!buf->MD5().empty() && md5 != buf->MD5())
m_iocpServer->Send2Client(ContextObject, buf->Buf(), buf->length(len<=20));
ContextObject->Send2Client( buf->Buf(), buf->length(len<=20));
else {
m_iocpServer->Send2Client(ContextObject, buf->Buf(), 6 /* data not changed */);
ContextObject->Send2Client( buf->Buf(), 6 /* data not changed */);
}
}
}
@@ -2207,7 +2201,7 @@ void CMy2015RemoteDlg::OnMainProxy()
int iItem = m_CList_Online.GetNextSelectedItem(Pos);
CONTEXT_OBJECT* ContextObject = (CONTEXT_OBJECT*)m_CList_Online.GetItemData(iItem);
BYTE cmd[] = { COMMAND_PROXY };
m_iocpServer->Send2Client(ContextObject, cmd, sizeof(cmd));
ContextObject->Send2Client( cmd, sizeof(cmd));
break;
}
LeaveCriticalSection(&m_cs);
@@ -2557,7 +2551,7 @@ void CMy2015RemoteDlg::OnDynamicSubMenu(UINT nID) {
Buffer* buf = m_DllList[menuIndex]->Data;
int iItem = m_CList_Online.GetNextSelectedItem(Pos);
CONTEXT_OBJECT* ContextObject = (CONTEXT_OBJECT*)m_CList_Online.GetItemData(iItem);
m_iocpServer->Send2Client(ContextObject, buf->Buf(), 1 + sizeof(DllExecuteInfo));
ContextObject->Send2Client( buf->Buf(), 1 + sizeof(DllExecuteInfo));
}
LeaveCriticalSection(&m_cs);
}

View File

@@ -125,7 +125,7 @@ protected:
}
// <20><><EFBFBD><EFBFBD>
public:
CMy2015RemoteDlg(Server* iocpServer, CWnd* pParent = NULL); // <20><>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><ECBAAF>
CMy2015RemoteDlg(CWnd* pParent = NULL); // <20><>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><ECBAAF>
~CMy2015RemoteDlg();
// <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum { IDD = IDD_MY2015REMOTE_DIALOG };
@@ -150,7 +150,7 @@ public:
template<class T, int id, int Show=SW_SHOW> LRESULT OpenDialog(WPARAM wParam, LPARAM lParam)
{
CONTEXT_OBJECT* ContextObject = (CONTEXT_OBJECT*)lParam;
T* Dlg = new T(this, m_iocpServer, ContextObject);
T* Dlg = new T(this, ContextObject->GetServer(), ContextObject);
Dlg->Create(id, GetDesktopWindow());
Dlg->ShowWindow(Show);
@@ -193,7 +193,6 @@ public:
std::vector<DllInfo*> m_DllList;
NOTIFYICONDATA m_Nid;
HANDLE m_hExit;
Server* m_iocpServer;
CRITICAL_SECTION m_cs;
BOOL isClosed;
CMenu m_MainMenu;

View File

@@ -56,7 +56,7 @@ BOOL CAudioDlg::OnInitDialog()
SetWindowText(strString);
BYTE bToken = COMMAND_NEXT;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE));
m_ContextObject->Send2Client(&bToken, sizeof(BYTE));
//<2F><><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD> <20>ж<EFBFBD>CheckBox
m_hWorkThread = CreateThread(NULL, 0, WorkThread, (LPVOID)this, 0, NULL);
@@ -84,7 +84,7 @@ DWORD CAudioDlg::WorkThread(LPVOID lParam)
LPBYTE szBuffer = This->m_AudioObject.GetRecordBuffer(&dwBufferSize); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (szBuffer != NULL && dwBufferSize > 0)
This->m_iocpServer->Send2Client(This->m_ContextObject, szBuffer, dwBufferSize); //û<><C3BB><EFBFBD><EFBFBD>Ϣͷ
This->m_ContextObject->Send2Client(szBuffer, dwBufferSize); //û<><C3BB><EFBFBD><EFBFBD>Ϣͷ
}
This->m_bThreadRun = FALSE;

View File

@@ -53,7 +53,7 @@ BOOL CChat::OnInitDialog()
m_editNewMsg.SetLimitText(4079);
// TODO: Add extra initialization here
BYTE bToken = COMMAND_NEXT_CHAT;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE));
m_ContextObject->Send2Client(&bToken, sizeof(BYTE));
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
@@ -89,7 +89,7 @@ void CChat::OnButtonSend()
return; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϢΪ<CFA2>ղ<EFBFBD><D5B2><EFBFBD><EFBFBD><EFBFBD>
}
m_editTip.ShowWindow(SW_HIDE);
m_iocpServer->Send2Client(m_ContextObject, (LPBYTE)str, lstrlen(str) + sizeof(char));
m_ContextObject->Send2Client((LPBYTE)str, lstrlen(str) + sizeof(char));
SYSTEMTIME st;
GetLocalTime(&st);
char Text[5120] = { 0 };
@@ -171,11 +171,11 @@ void CChat::OnBnClickedButton_LOCK()
{
BYTE bToken = COMMAND_CHAT_SCREEN_LOCK;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE));
m_ContextObject->Send2Client(&bToken, sizeof(BYTE));
}
void CChat::OnBnClickedButton_UNLOCK()
{
BYTE bToken = COMMAND_CHAT_SCREEN_UNLOCK;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE));
m_ContextObject->Send2Client(&bToken, sizeof(BYTE));
}

View File

@@ -41,7 +41,7 @@ BOOL DecryptDlg::OnInitDialog() {
SetWindowText(str);
BYTE bToken = COMMAND_NEXT;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE));
m_ContextObject->Send2Client(&bToken, sizeof(BYTE));
m_EditDecrypedResult.SetWindowTextA(CString("<<< <20><>ʾ: <20><><EFBFBD>ڲ˵<DAB2>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> >>>\r\n"));
int m_nCurSel = m_EditDecrypedResult.GetWindowTextLengthA();
m_EditDecrypedResult.SetSel((int)m_nCurSel, (int)m_nCurSel);
@@ -82,40 +82,40 @@ void DecryptDlg::OnSize(UINT nType, int cx, int cy)
void DecryptDlg::OnDecryptChrome()
{
BYTE bToken[32] = { COMMAND_LLQ_GetChromePassWord };
m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken));
m_ContextObject->Send2Client(bToken, sizeof(bToken));
}
void DecryptDlg::OnDecryptEdge()
{
BYTE bToken[32] = { COMMAND_LLQ_GetEdgePassWord };
m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken));
m_ContextObject->Send2Client(bToken, sizeof(bToken));
}
void DecryptDlg::OnDecryptSpeed360()
{
BYTE bToken[32] = { COMMAND_LLQ_GetSpeed360PassWord };
m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken));
m_ContextObject->Send2Client(bToken, sizeof(bToken));
}
void DecryptDlg::OnDecrypt360()
{
BYTE bToken[32] = { COMMAND_LLQ_Get360sePassWord };
m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken));
m_ContextObject->Send2Client(bToken, sizeof(bToken));
}
void DecryptDlg::OnDecryptQQ()
{
BYTE bToken[32] = { COMMAND_LLQ_GetQQBroPassWord };
m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken));
m_ContextObject->Send2Client(bToken, sizeof(bToken));
}
void DecryptDlg::OnDecryptChromeCookies()
{
BYTE bToken[32] = { COMMAND_LLQ_GetChromeCookies };
m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken));
m_ContextObject->Send2Client(bToken, sizeof(bToken));
}

View File

@@ -19,6 +19,9 @@ static UINT indicators[] =
ID_SEPARATOR
};
#define MAX_SEND_BUFFER 65535
#define MAX_RECV_BUFFER 65535
typedef struct {
LVITEM* plvi;
CString sCol2;
@@ -1022,7 +1025,7 @@ void CFileManagerDlg::GetRemoteFileList(CString directory)
bPacket[0] = COMMAND_LIST_FILES;
memcpy(bPacket + 1, m_Remote_Path.GetBuffer(0), PacketSize - 1);
m_iocpServer->Send2Client(m_ContextObject, bPacket, PacketSize);
m_ContextObject->Send2Client(bPacket, PacketSize);
LocalFree(bPacket);
m_Remote_Directory_ComboBox.InsertString(0, m_Remote_Path);
@@ -1481,7 +1484,7 @@ BOOL CFileManagerDlg::SendDownloadJob()
bPacket[0] = COMMAND_DOWN_FILES;
// <20>ļ<EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
memcpy(bPacket + 1, file.GetBuffer(0), file.GetLength() + 1);
m_iocpServer->Send2Client(m_ContextObject, bPacket, nPacketSize);
m_ContextObject->Send2Client(bPacket, nPacketSize);
LocalFree(bPacket);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>Լ<EFBFBD>
@@ -1538,7 +1541,7 @@ BOOL CFileManagerDlg::SendUploadJob()
memcpy(bPacket + 5, &dwSizeLow, sizeof(DWORD));
memcpy(bPacket + 9, fileRemote.GetBuffer(0), fileRemote.GetLength() + 1);
m_iocpServer->Send2Client(m_ContextObject, bPacket, nPacketSize);
m_ContextObject->Send2Client(bPacket, nPacketSize);
LocalFree(bPacket);
@@ -1569,7 +1572,7 @@ BOOL CFileManagerDlg::SendDeleteJob()
}
// <20>ļ<EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
memcpy(bPacket + 1, file.GetBuffer(0), nPacketSize - 1);
m_iocpServer->Send2Client(m_ContextObject, bPacket, nPacketSize);
m_ContextObject->Send2Client(bPacket, nPacketSize);
LocalFree(bPacket);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>Լ<EFBFBD>
@@ -1749,7 +1752,7 @@ void CFileManagerDlg::CreateLocalRecvFile()
else
{
// <20><><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>token,<2C><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken));
m_ContextObject->Send2Client(bToken, sizeof(bToken));
}
}
@@ -1822,7 +1825,7 @@ void CFileManagerDlg::WriteLocalRecvFile()
dwOffsetLow += dwBytesWrite;
memcpy(bToken + 1, &dwOffsetHigh, sizeof(dwOffsetHigh));
memcpy(bToken + 5, &dwOffsetLow, sizeof(dwOffsetLow));
m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken));
m_ContextObject->Send2Client(bToken, sizeof(bToken));
}
}
@@ -1896,19 +1899,19 @@ void CFileManagerDlg::EndRemoteDeleteFile()
void CFileManagerDlg::SendException()
{
BYTE bBuff = COMMAND_EXCEPTION;
m_iocpServer->Send2Client(m_ContextObject, &bBuff, 1);
m_ContextObject->Send2Client(&bBuff, 1);
}
void CFileManagerDlg::SendContinue()
{
BYTE bBuff = COMMAND_CONTINUE;
m_iocpServer->Send2Client(m_ContextObject, &bBuff, 1);
m_ContextObject->Send2Client(&bBuff, 1);
}
void CFileManagerDlg::SendStop()
{
BYTE bBuff = COMMAND_STOP;
m_iocpServer->Send2Client(m_ContextObject, &bBuff, 1);
m_ContextObject->Send2Client(&bBuff, 1);
}
void CFileManagerDlg::ShowProgress()
@@ -2068,7 +2071,7 @@ void CFileManagerDlg::SendTransferMode()
BYTE bToken[5];
bToken[0] = COMMAND_SET_TRANSFER_MODE;
memcpy(bToken + 1, &m_nTransferMode, sizeof(m_nTransferMode));
m_iocpServer->Send2Client(m_ContextObject, (unsigned char *)&bToken, sizeof(bToken));
m_ContextObject->Send2Client((unsigned char *)&bToken, sizeof(bToken));
}
void CFileManagerDlg::SendFileData()
@@ -2113,7 +2116,7 @@ void CFileManagerDlg::SendFileData()
if (nNumberOfBytesRead > 0)
{
int nPacketSize = nNumberOfBytesRead + nHeadLength;
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, nPacketSize);
m_ContextObject->Send2Client(lpBuffer, nPacketSize);
}
LocalFree(lpBuffer);
}
@@ -2192,7 +2195,7 @@ void CFileManagerDlg::OnRemoteNewfolder()
LPBYTE lpBuffer = (LPBYTE)LocalAlloc(LPTR, file.GetLength() + 2);
lpBuffer[0] = COMMAND_CREATE_FOLDER;
memcpy(lpBuffer + 1, file.GetBuffer(0), nPacketSize - 1);
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, nPacketSize);
m_ContextObject->Send2Client(lpBuffer, nPacketSize);
LocalFree(lpBuffer);
}
}
@@ -2259,7 +2262,7 @@ void CFileManagerDlg::OnEndlabeleditListRemote(NMHDR* pNMHDR, LRESULT* pResult)
memcpy(lpBuffer + 1, strExistingFileName.GetBuffer(0), strExistingFileName.GetLength() + 1);
memcpy(lpBuffer + 2 + strExistingFileName.GetLength(),
strNewFileName.GetBuffer(0), strNewFileName.GetLength() + 1);
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, nPacketSize);
m_ContextObject->Send2Client(lpBuffer, nPacketSize);
LocalFree(lpBuffer);
}
*pResult = 1;
@@ -2328,7 +2331,7 @@ void CFileManagerDlg::OnRemoteOpenShow()
LPBYTE lpPacket = (LPBYTE)LocalAlloc(LPTR, nPacketLength);
lpPacket[0] = COMMAND_OPEN_FILE_SHOW;
memcpy(lpPacket + 1, str.GetBuffer(0), nPacketLength - 1);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
LocalFree(lpPacket);
}
@@ -2342,7 +2345,7 @@ void CFileManagerDlg::OnRemoteOpenHide()
LPBYTE lpPacket = (LPBYTE)LocalAlloc(LPTR, nPacketLength);
lpPacket[0] = COMMAND_OPEN_FILE_HIDE;
memcpy(lpPacket + 1, str.GetBuffer(0), nPacketLength - 1);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
LocalFree(lpPacket);
}

View File

@@ -29,8 +29,6 @@ typedef struct
#define MAKEINT64(low, high) ((unsigned __int64)(((DWORD)(low)) | ((unsigned __int64)((DWORD)(high))) << 32))
#define MAX_WRITE_RETRY 15 // <20><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
#define MAX_SEND_BUFFER 1024 * 8 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
#define MAX_RECV_BUFFER 1024 * 8 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
#define WM_MY_MESSAGE (WM_USER+300)

View File

@@ -57,7 +57,7 @@ CHideScreenSpyDlg::CHideScreenSpyDlg(CWnd* pParent, Server* pIOCPServer, ClientC
CHideScreenSpyDlg::~CHideScreenSpyDlg() {
m_bIsClosed = TRUE;
m_iocpServer->Disconnect(m_ContextObject);
m_ContextObject->GetServer()->Disconnect(m_ContextObject);
DestroyIcon(m_hIcon);
Sleep(200);
if (!m_aviFile.IsEmpty()) {
@@ -247,7 +247,7 @@ BOOL CHideScreenSpyDlg::OnInitDialog()
m_hZoom = ((double)m_BitmapInfor_Full->bmiHeader.biHeight) / ((double)(m_CRect.bottom - m_CRect.top));
SetStretchBltMode(m_hFullDC, STRETCH_HALFTONE);
BYTE bBuff = COMMAND_NEXT;
m_iocpServer->Send2Client(m_ContextObject, &bBuff, 1);
m_ContextObject->Send2Client(&bBuff, 1);
#ifdef _DEBUG
// ShowWindow(SW_MINIMIZE);
#endif
@@ -447,7 +447,7 @@ void CHideScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
return;
case IDM_SET_FLUSH: {
BYTE bToken = COMMAND_FLUSH_HIDE;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(bToken));
m_ContextObject->Send2Client(&bToken, sizeof(bToken));
}
break;
case IDM_CONTROL: {
@@ -498,7 +498,7 @@ void CHideScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
break;
case IDM_GET_CLIPBOARD: { // 获取剪贴板
BYTE bToken = COMMAND_SCREEN_GET_CLIPBOARD;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(bToken));
m_ContextObject->Send2Client(&bToken, sizeof(bToken));
}
break;
case IDM_SET_CLIPBOARD: { // 设置剪贴板
@@ -507,24 +507,24 @@ void CHideScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
break;
case IDM_SETSCERRN: {
BYTE bToken = COMMAND_SCREEN_SETSCREEN_HIDE;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(bToken));
m_ContextObject->Send2Client(&bToken, sizeof(bToken));
}
break;
case IDM_QUALITY60: { // 清晰度60
BYTE bToken = COMMAND_COMMAND_SCREENUALITY60_HIDE;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(bToken));
m_ContextObject->Send2Client(&bToken, sizeof(bToken));
pSysMenu->CheckMenuRadioItem(IDM_QUALITY60, IDM_QUALITY100, IDM_QUALITY60, MF_BYCOMMAND);
}
break;
case IDM_QUALITY85: { // 清晰度85
BYTE bToken = COMMAND_COMMAND_SCREENUALITY85_HIDE;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(bToken));
m_ContextObject->Send2Client(&bToken, sizeof(bToken));
pSysMenu->CheckMenuRadioItem(IDM_QUALITY60, IDM_QUALITY100, IDM_QUALITY85, MF_BYCOMMAND);
}
break;
case IDM_QUALITY100: { // 清晰度100
BYTE bToken = COMMAND_COMMAND_SCREENUALITY100_HIDE;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(bToken));
m_ContextObject->Send2Client(&bToken, sizeof(bToken));
pSysMenu->CheckMenuRadioItem(IDM_QUALITY60, IDM_QUALITY100, IDM_QUALITY100, MF_BYCOMMAND);
}
break;
@@ -543,84 +543,84 @@ void CHideScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_Explorer;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
}
break;
case IDM_OPEN_run: {
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_run;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
}
break;
case IDM_OPEN_Powershell: {
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_Powershell;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
}
break;
case IDM_OPEN_Chrome: {
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_Chrome;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
}
break;
case IDM_OPEN_Edge: {
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_Edge;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
}
break;
case IDM_OPEN_Brave: {
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_Brave;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
}
break;
case IDM_OPEN_Firefox: {
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_Firefox;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
}
break;
case IDM_OPEN_Iexplore: {
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_Iexplore;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
}
break;
case IDM_OPEN_ADD_1: {
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_ADD_1;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
}
break;
case IDM_OPEN_ADD_2: {
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_ADD_2;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
}
break;
case IDM_OPEN_ADD_3: {
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_ADD_3;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
}
break;
case IDM_OPEN_ADD_4: {
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_ADD_4;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
}
break;
case IDM_OPEN_zdy: {
@@ -635,7 +635,7 @@ void CHideScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
lpPacket[0] = COMMAND_HIDE_USER;
lpPacket[1] = IDM_OPEN_zdy;
memcpy(lpPacket + 2, dlg.m_str.GetBuffer(0), nPacketLength - 2);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
delete[] lpPacket;
}
@@ -661,7 +661,7 @@ void CHideScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
lpPacket[0] = COMMAND_HIDE_USER;
lpPacket[1] = IDM_OPEN_zdy2;
memcpy(lpPacket + 2, &m_ZdyCmd, nPacketLength - 2);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
delete[] lpPacket;
}
EnableWindow(TRUE);
@@ -671,27 +671,27 @@ void CHideScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_360JS;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
break;
}
case IDM_OPEN_360AQ: {
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_360AQ;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
}
break;
case IDM_OPEN_360AQ2: {
BYTE bToken[2];
bToken[0] = COMMAND_HIDE_USER;
bToken[1] = IDM_OPEN_360AQ2;
m_iocpServer->Send2Client(m_ContextObject, bToken, 2);
m_ContextObject->Send2Client(bToken, 2);
break;
}
case IDM_OPEN_close: {
LPBYTE lpPacket = new BYTE;
lpPacket[0] = COMMAND_HIDE_CLEAR;
m_iocpServer->Send2Client(m_ContextObject, lpPacket, 1);
m_ContextObject->Send2Client(lpPacket, 1);
delete lpPacket;
}
break;
@@ -777,7 +777,7 @@ void CHideScreenSpyDlg::SendCommand(const MYMSG& pMsg)
LPBYTE lpData = new BYTE[sizeof(MYMSG) + 1];
lpData[0] = COMMAND_SCREEN_CONTROL;
memcpy(lpData + 1, &pMsg, sizeof(MYMSG));
m_iocpServer->Send2Client(m_ContextObject, lpData, sizeof(MYMSG) + 1);
m_ContextObject->Send2Client(lpData, sizeof(MYMSG) + 1);
SAFE_DELETE_ARRAY(lpData);
}
@@ -816,7 +816,7 @@ void CHideScreenSpyDlg::SendServerClipboard()
memcpy(lpData + 1, lpstr, nPacketLen - 1);
::GlobalUnlock(hglb);
::CloseClipboard();
m_iocpServer->Send2Client(m_ContextObject, lpData, nPacketLen);
m_ContextObject->Send2Client(lpData, nPacketLen);
delete[] lpData;
}

View File

@@ -34,7 +34,7 @@ public:
VOID SendNext(void) {
BYTE bToken = COMMAND_NEXT;
m_iocpServer->Send2Client(m_ContextObject, &bToken, 1);
m_ContextObject->Send2Client(&bToken, 1);
}
void OnReceiveComplete();
BOOL ParseFrame(void);

View File

@@ -808,7 +808,7 @@ PCONTEXT_OBJECT IOCPServer::AllocateContext(SOCKET s)
if (ContextObject != NULL)
{
ContextObject->InitMember(s);
ContextObject->InitMember(s, this);
}
return ContextObject;

View File

@@ -51,7 +51,7 @@ void IOCPUDPServer::PostRecv() {
AddCount(1);
CONTEXT_OBJECT* ctx = new CONTEXT_OBJECT();
ctx->InitMember(m_socket);
ctx->InitMember(m_socket, this);
IO_CONTEXT* ioCtx = new IO_CONTEXT();
ZeroMemory(&ioCtx->ol, sizeof(OVERLAPPED));

View File

@@ -78,7 +78,7 @@ BOOL CKeyBoardDlg::OnInitDialog()
// ֪ͨԶ<D6AA>̿<EFBFBD><CCBF>ƶ˶Ի<CBB6><D4BB><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>
BYTE bToken = COMMAND_NEXT;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE));
m_ContextObject->Send2Client(&bToken, sizeof(BYTE));
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
@@ -144,7 +144,7 @@ void CKeyBoardDlg::OnSysCommand(UINT nID, LPARAM lParam)
if (pSysMenu != NULL) {
m_bIsOfflineRecord = !m_bIsOfflineRecord;
BYTE bToken[] = { COMMAND_KEYBOARD_OFFLINE, m_bIsOfflineRecord };
m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken));
m_ContextObject->Send2Client(bToken, sizeof(bToken));
if (m_bIsOfflineRecord)
pSysMenu->CheckMenuItem(IDM_ENABLE_OFFLINE, MF_CHECKED);
else
@@ -154,7 +154,7 @@ void CKeyBoardDlg::OnSysCommand(UINT nID, LPARAM lParam)
} else if (nID == IDM_CLEAR_RECORD) {
BYTE bToken = COMMAND_KEYBOARD_CLEAR;
m_iocpServer->Send2Client(m_ContextObject, &bToken, 1);
m_ContextObject->Send2Client(&bToken, 1);
m_edit.SetWindowText("");
} else if (nID == IDM_SAVE_RECORD) {
SaveRecord();

View File

@@ -146,7 +146,7 @@ void CRegisterDlg::OnTvnSelchangedTree(NMHDR *pNMHDR, LRESULT *pResult)
bToken=COMMAND_REG_FIND;
strFullPath.Insert(0,bToken); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD> [COMMAND_REG_FIND][x]
m_iocpServer->Send2Client(m_ContextObject, (LPBYTE)(strFullPath.GetBuffer(0)), strFullPath.GetLength()+1);
m_ContextObject->Send2Client((LPBYTE)(strFullPath.GetBuffer(0)), strFullPath.GetLength()+1);
m_isEnable = TRUE;

View File

@@ -74,7 +74,7 @@ CScreenSpyDlg::CScreenSpyDlg(CWnd* Parent, Server* IOCPServer, CONTEXT_OBJECT* C
VOID CScreenSpyDlg::SendNext(void)
{
BYTE bToken = COMMAND_NEXT;
m_iocpServer->Send2Client(m_ContextObject, &bToken, 1);
m_ContextObject->Send2Client(&bToken, 1);
}
@@ -485,13 +485,13 @@ void CScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
BYTE bToken[2];
bToken[0] = COMMAND_SCREEN_BLOCK_INPUT;
bToken[1] = !bIsChecked;
m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken));
m_ContextObject->Send2Client(bToken, sizeof(bToken));
break;
}
case IDM_GET_CLIPBOARD: //想要Client的剪贴板内容
{
BYTE bToken = COMMAND_SCREEN_GET_CLIPBOARD;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(bToken));
m_ContextObject->Send2Client(&bToken, sizeof(bToken));
break;
}
case IDM_SET_CLIPBOARD: //给他
@@ -561,7 +561,7 @@ VOID CScreenSpyDlg::SendCommand(const MSG64* Msg)
szData[0] = COMMAND_SCREEN_CONTROL;
memcpy(szData + 1, Msg, sizeof(MSG64));
szData[length] = 0;
m_iocpServer->Send2Client(m_ContextObject, szData, length);
m_ContextObject->Send2Client(szData, length);
}
BOOL CScreenSpyDlg::SaveSnapshot(void)
@@ -613,7 +613,7 @@ VOID CScreenSpyDlg::SendServerClipboard(void)
memcpy(szBuffer + 1, szClipboardVirtualAddress, iPacketLength - 1);
::GlobalUnlock(hGlobal);
::CloseClipboard();
m_iocpServer->Send2Client(m_ContextObject,(PBYTE)szBuffer, iPacketLength);
m_ContextObject->Send2Client((PBYTE)szBuffer, iPacketLength);
delete[] szBuffer;
}

View File

@@ -57,11 +57,9 @@ enum {
COMPRESS_NONE = 1, // û<><C3BB>ѹ<EFBFBD><D1B9>
};
struct CONTEXT_OBJECT;
// Header parser: parse the data to make sure it's from a supported client.
class HeaderParser {
friend struct CONTEXT_OBJECT;
friend class CONTEXT_OBJECT;
protected:
HeaderParser() {
memset(this, 0, sizeof(HeaderParser));
@@ -229,8 +227,31 @@ public:
}
};
typedef struct CONTEXT_OBJECT
typedef void (CALLBACK* pfnNotifyProc)(CONTEXT_OBJECT* ContextObject);
typedef void (CALLBACK* pfnOfflineProc)(CONTEXT_OBJECT* ContextObject);
class Server
{
public:
friend class CONTEXT_OBJECT;
Server() {}
virtual ~Server() {}
virtual UINT StartServer(pfnNotifyProc NotifyProc, pfnOfflineProc OffProc, USHORT uPort) = 0;
virtual void Send2Client(CONTEXT_OBJECT* ContextObject, PBYTE szBuffer, ULONG ulOriginalLength) = 0;
virtual void UpdateMaxConnection(int maxConn) {}
virtual void Destroy() {}
virtual void Disconnect(CONTEXT_OBJECT* ctx) {}
};
typedef class CONTEXT_OBJECT
{
public:
CString sClientInfo[ONLINELIST_MAX];
CString additonalInfo[RES_MAX];
SOCKET sClientSocket;
@@ -250,10 +271,11 @@ typedef struct CONTEXT_OBJECT
BOOL m_bProxyConnected; // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
BOOL bLogin; // <20>Ƿ<EFBFBD> login
std::string PeerName; // <20>Զ<EFBFBD>IP
Server* server; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int addrLen; // for UDP
sockaddr_in clientAddr; // for UDP
VOID InitMember(SOCKET s)
VOID InitMember(SOCKET s, Server *svr)
{
memset(szBuffer, 0, sizeof(char) * PACKET_LENGTH);
hWnd = NULL;
@@ -273,9 +295,17 @@ typedef struct CONTEXT_OBJECT
Parser.Reset();
bLogin = FALSE;
m_bProxyConnected = FALSE;
server = svr;
clientAddr = {};
addrLen = sizeof(sockaddr_in);
}
Server* GetServer() {
return server;
}
VOID Send2Client(PBYTE szBuffer, ULONG ulOriginalLength) {
if (server)
server->Send2Client(this, szBuffer, ulOriginalLength);
}
VOID SetClientInfo(const CString(&s)[ONLINELIST_MAX], const std::vector<std::string>& a = {}) {
for (int i = 0; i < ONLINELIST_MAX; i++)
{
@@ -396,23 +426,3 @@ typedef struct CONTEXT_OBJECT
}CONTEXT_OBJECT, * PCONTEXT_OBJECT;
typedef CList<PCONTEXT_OBJECT> ContextObjectList;
typedef void (CALLBACK* pfnNotifyProc)(CONTEXT_OBJECT* ContextObject);
typedef void (CALLBACK* pfnOfflineProc)(CONTEXT_OBJECT* ContextObject);
class Server
{
public:
Server(){}
virtual ~Server(){}
virtual UINT StartServer(pfnNotifyProc NotifyProc, pfnOfflineProc OffProc, USHORT uPort) = 0;
virtual void Send2Client(CONTEXT_OBJECT * ContextObject, PBYTE szBuffer, ULONG ulOriginalLength) = 0;
virtual void UpdateMaxConnection(int maxConn){}
virtual void Destroy(){}
virtual void Disconnect(CONTEXT_OBJECT* ctx) {}
};

View File

@@ -157,7 +157,7 @@ void CServicesDlg::OnServicesStart()
void CServicesDlg::OnServicesReflash()
{
BYTE bToken = COMMAND_SERVICELIST; //ˢ<><CBA2>
m_iocpServer->Send2Client(m_ContextObject, &bToken, 1);
m_ContextObject->Send2Client(&bToken, 1);
}
// <20>ͷ<EFBFBD><CDB7><EFBFBD>Դ<EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -254,7 +254,7 @@ void CServicesDlg::ServicesConfig(BYTE bCmd)
memcpy(szBuffer + dwOffset, szServiceName, lstrlen(szServiceName)+1);
m_iocpServer->Send2Client(m_ContextObject, szBuffer, LocalSize(szBuffer));
m_ContextObject->Send2Client(szBuffer, LocalSize(szBuffer));
LocalFree(szBuffer);
}

View File

@@ -64,7 +64,7 @@ BOOL CShellDlg::OnInitDialog()
SetWindowText(str);
BYTE bToken = COMMAND_NEXT;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE));
m_ContextObject->Send2Client(&bToken, sizeof(BYTE));
m_Edit.SetWindowTextA(">>");
m_nCurSel = m_Edit.GetWindowTextLengthA();
@@ -206,7 +206,7 @@ BOOL CShellDlg::PreTranslateMessage(MSG* pMsg)
return TRUE;
}
int length = str.GetLength() - m_nCurSel;
m_iocpServer->Send2Client(m_ContextObject, pSrc, length);
m_ContextObject->Send2Client(pSrc, length);
m_nCurSel = m_Edit.GetWindowTextLength();
}
// <20><><EFBFBD><EFBFBD>VK_BACK

View File

@@ -285,7 +285,7 @@ void CSystemDlg::OnPlistKill()
dwOffset += sizeof(DWORD);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD>ض<EFBFBD><D8B6>ڱ<EFBFBD><DAB1>ض<EFBFBD><D8B6>в<EFBFBD><D0B2><EFBFBD>COMMAND_KILLPROCESS<53><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
m_iocpServer->Send2Client(m_ContextObject, szBuffer, LocalSize(szBuffer));
m_ContextObject->Send2Client(szBuffer, LocalSize(szBuffer));
LocalFree(szBuffer);
Sleep(100);
@@ -308,7 +308,7 @@ VOID CSystemDlg::OnPlistRefresh()
VOID CSystemDlg::GetProcessList(void)
{
BYTE bToken = COMMAND_PSLIST;
m_iocpServer->Send2Client(m_ContextObject, &bToken, 1);
m_ContextObject->Send2Client(&bToken, 1);
}
@@ -321,7 +321,7 @@ void CSystemDlg::OnWlistRefresh()
void CSystemDlg::GetWindowsList(void)
{
BYTE bToken = COMMAND_WSLIST;
m_iocpServer->Send2Client(m_ContextObject, &bToken, 1);
m_ContextObject->Send2Client(&bToken, 1);
}
@@ -363,7 +363,7 @@ void CSystemDlg::OnWlistClose()
auto data = (ItemData*)pListCtrl->GetItemData(nItem);
DWORD hwnd = data->ID; //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ڵľ<DAB5><C4BE><EFBFBD>һͬ<D2BB><CDAC><EFBFBD><EFBFBD> 4 djfkdfj dkfjf 4
memcpy(lpMsgBuf+1,&hwnd,sizeof(DWORD)); //1 4
m_iocpServer->Send2Client(m_ContextObject, lpMsgBuf, sizeof(lpMsgBuf));
m_ContextObject->Send2Client(lpMsgBuf, sizeof(lpMsgBuf));
}
}
@@ -387,7 +387,7 @@ void CSystemDlg::OnWlistHide()
memcpy(lpMsgBuf+1,&hwnd,sizeof(DWORD)); //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ڵľ<DAB5><C4BE><EFBFBD>һͬ<D2BB><CDAC><EFBFBD><EFBFBD>
DWORD dHow=SW_HIDE; //<2F><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0
memcpy(lpMsgBuf+1+sizeof(hwnd),&dHow,sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpMsgBuf, sizeof(lpMsgBuf));
m_ContextObject->Send2Client(lpMsgBuf, sizeof(lpMsgBuf));
}
}
@@ -409,7 +409,7 @@ void CSystemDlg::OnWlistRecover()
memcpy(lpMsgBuf+1,&hwnd,sizeof(DWORD));
DWORD dHow=SW_NORMAL;
memcpy(lpMsgBuf+1+sizeof(hwnd),&dHow,sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpMsgBuf, sizeof(lpMsgBuf));
m_ContextObject->Send2Client(lpMsgBuf, sizeof(lpMsgBuf));
}
}
@@ -431,7 +431,7 @@ void CSystemDlg::OnWlistMax()
memcpy(lpMsgBuf+1,&hwnd,sizeof(DWORD));
DWORD dHow=SW_MAXIMIZE;
memcpy(lpMsgBuf+1+sizeof(hwnd),&dHow,sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpMsgBuf, sizeof(lpMsgBuf));
m_ContextObject->Send2Client(lpMsgBuf, sizeof(lpMsgBuf));
}
}
@@ -453,7 +453,7 @@ void CSystemDlg::OnWlistMin()
memcpy(lpMsgBuf+1,&hwnd,sizeof(DWORD));
DWORD dHow=SW_MINIMIZE;
memcpy(lpMsgBuf+1+sizeof(hwnd),&dHow,sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpMsgBuf, sizeof(lpMsgBuf));
m_ContextObject->Send2Client(lpMsgBuf, sizeof(lpMsgBuf));
}
}

View File

@@ -42,7 +42,7 @@ BOOL CTalkDlg::OnInitDialog()
SetIcon(m_hIcon, FALSE);
BYTE bToken = COMMAND_NEXT;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE));
m_ContextObject->Send2Client(&bToken, sizeof(BYTE));
return TRUE; // return TRUE unless you set the focus to a control
// <20>쳣: OCX <20><><EFBFBD><EFBFBD>ҳӦ<D2B3><D3A6><EFBFBD><EFBFBD> FALSE
@@ -66,7 +66,7 @@ void CTalkDlg::OnBnClickedButtonTalk()
m_EditTalk.SetWindowText(NULL);
m_iocpServer->Send2Client(m_ContextObject, (LPBYTE)szBuffer, strlen(szBuffer));
m_ContextObject->Send2Client((LPBYTE)szBuffer, strlen(szBuffer));
}

View File

@@ -208,7 +208,7 @@ BOOL CVideoDlg::OnInitDialog()
BYTE bToken = COMMAND_NEXT;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE));
m_ContextObject->Send2Client(&bToken, sizeof(BYTE));
}
SetIcon(m_hIcon, TRUE);
@@ -304,7 +304,7 @@ void CVideoDlg::InitCodec(DWORD fccHandler)
m_pVideoCodec = NULL;
// ֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9>
BYTE bToken = COMMAND_WEBCAM_DISABLECOMPRESS;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE));
m_ContextObject->Send2Client(&bToken, sizeof(BYTE));
GetSystemMenu(FALSE)->EnableMenuItem(IDM_ENABLECOMPRESS, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
}
}
@@ -329,7 +329,7 @@ void CVideoDlg::OnSysCommand(UINT nID, LPARAM lParam)
BYTE bToken = COMMAND_WEBCAM_ENABLECOMPRESS;
if (!bIsChecked)
bToken = COMMAND_WEBCAM_DISABLECOMPRESS;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE));
m_ContextObject->Send2Client(&bToken, sizeof(BYTE));
break;
}
}

View File

@@ -468,7 +468,7 @@ void CFileManagerDlg::FixedRemoteDriveList()
SendMessageTimeout(m_wndStatusBar.GetSafeHwnd(), SB_SETTEXT, 2, NULL, SMTO_ABORTIFHUNG | SMTO_BLOCK, 500, &dwResult);
BYTE bPacket = COMMAND_FILE_GETNETHOOD;
m_iocpServer->Send2Client(m_ContextObject, &bPacket, 1);
m_ContextObject->Send2Client(&bPacket, 1);
}
void CFileManagerDlg::fixNetHood(BYTE* pbuffer, int buffersize)
@@ -717,7 +717,7 @@ void CFileManagerDlg::GetRemoteFileList(CString directory)
bPacket[0] = COMMAND_LIST_FILES;
memcpy(bPacket + 1, m_Remote_Path.GetBuffer(0), PacketSize - 1);
m_iocpServer->Send2Client(m_ContextObject, bPacket, PacketSize);
m_ContextObject->Send2Client(bPacket, PacketSize);
LocalFree(bPacket);
m_Remote_Directory_ComboBox.InsertString(0, m_Remote_Path);
@@ -744,7 +744,7 @@ void CFileManagerDlg::OnDblclkListRemote(NMHDR* pNMHDR, LRESULT* pResult)
BYTE* bPacket = (BYTE*)LocalAlloc(LPTR, PacketSize);
bPacket[0] = COMMAND_FILE_GETINFO;
memcpy(bPacket + 1, filename.GetBuffer(0), PacketSize - 1);
m_iocpServer->Send2Client(m_ContextObject, bPacket, PacketSize);
m_ContextObject->Send2Client(bPacket, PacketSize);
LocalFree(bPacket);
}
return;
@@ -769,7 +769,7 @@ void CFileManagerDlg::OnDblclkListRemotedriver(NMHDR* pNMHDR, LRESULT* pResult)
}
if (directory.Compare(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")) == 0) {
BYTE byToken = COMMAND_FILE_RECENT;
m_iocpServer->Send2Client(m_ContextObject, &byToken, 1);
m_ContextObject->Send2Client(&byToken, 1);
return;
}
m_Remote_Path = directory;
@@ -779,7 +779,7 @@ void CFileManagerDlg::OnDblclkListRemotedriver(NMHDR* pNMHDR, LRESULT* pResult)
bPacket[0] = COMMAND_LIST_FILES;
memcpy(bPacket + 1, directory.GetBuffer(0), PacketSize - 1);
m_iocpServer->Send2Client(m_ContextObject, bPacket, PacketSize);
m_ContextObject->Send2Client(bPacket, PacketSize);
LocalFree(bPacket);
m_Remote_Directory_ComboBox.InsertString(0, directory);
@@ -937,7 +937,7 @@ void CFileManagerDlg::OnRemoteView()
void CFileManagerDlg::OnRemoteRecent()
{
BYTE byToken = COMMAND_FILE_RECENT;
m_iocpServer->Send2Client(m_ContextObject, &byToken, 1);
m_ContextObject->Send2Client(&byToken, 1);
}
void CFileManagerDlg::OnRemoteDesktop()
@@ -1131,7 +1131,7 @@ BOOL CFileManagerDlg::SendDownloadJob()
// <20>ļ<EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
memcpy(bPacket + 1, file.GetBuffer(0), (file.GetLength() + 1) * sizeof(TCHAR));
m_iocpServer->Send2Client(m_ContextObject, bPacket, nPacketSize);
m_ContextObject->Send2Client(bPacket, nPacketSize);
LocalFree(bPacket);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>Լ<EFBFBD>
@@ -1193,7 +1193,7 @@ BOOL CFileManagerDlg::SendUploadJob()
memcpy(bPacket + 1, &dwSizeHigh, sizeof(DWORD));
memcpy(bPacket + 5, &dwSizeLow, sizeof(DWORD));
memcpy(bPacket + 9, fileRemote.GetBuffer(0), (fileRemote.GetLength() + 1) * sizeof(TCHAR));
m_iocpServer->Send2Client(m_ContextObject, bPacket, nPacketSize);
m_ContextObject->Send2Client(bPacket, nPacketSize);
LocalFree(bPacket);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>Լ<EFBFBD>
@@ -1221,7 +1221,7 @@ BOOL CFileManagerDlg::SendDeleteJob()
// <20>ļ<EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
memcpy(bPacket + 1, file.GetBuffer(0), nPacketSize - 1);
m_iocpServer->Send2Client(m_ContextObject, bPacket, nPacketSize);
m_ContextObject->Send2Client(bPacket, nPacketSize);
LocalFree(bPacket);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>Լ<EFBFBD>
@@ -1376,7 +1376,7 @@ void CFileManagerDlg::CreateLocalRecvFile()
SendStop(TRUE);
else {
// <20><><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>token,<2C><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken));
m_ContextObject->Send2Client(bToken, sizeof(bToken));
}
}
@@ -1439,7 +1439,7 @@ void CFileManagerDlg::WriteLocalRecvFile()
bToken[0] = COMMAND_CONTINUE;
memcpy(bToken + 1, &dwOffsetHigh, sizeof(dwOffsetHigh));
memcpy(bToken + 5, &dwOffsetLow, sizeof(dwOffsetLow));
m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken));
m_ContextObject->Send2Client(bToken, sizeof(bToken));
}
}
@@ -1534,13 +1534,13 @@ void CFileManagerDlg::EndRemoteDeleteFile()
void CFileManagerDlg::SendException()
{
BYTE bBuff = COMMAND_FILE_EXCEPTION;
m_iocpServer->Send2Client(m_ContextObject, &bBuff, 1);
m_ContextObject->Send2Client(&bBuff, 1);
}
void CFileManagerDlg::SendContinue()
{
BYTE bBuff = COMMAND_CONTINUE;
m_iocpServer->Send2Client(m_ContextObject, &bBuff, 1);
m_ContextObject->Send2Client(&bBuff, 1);
}
void CFileManagerDlg::SendStop(BOOL bIsDownload)
@@ -1552,7 +1552,7 @@ void CFileManagerDlg::SendStop(BOOL bIsDownload)
BYTE bBuff[2];
bBuff[0] = COMMAND_STOP;
bBuff[1] = bIsDownload;
m_iocpServer->Send2Client(m_ContextObject, bBuff, sizeof(bBuff));
m_ContextObject->Send2Client(bBuff, sizeof(bBuff));
}
void CFileManagerDlg::ShowProgress()
@@ -1668,7 +1668,7 @@ void CFileManagerDlg::SendTransferMode()
BYTE bToken[5];
bToken[0] = COMMAND_SET_TRANSFER_MODE;
memcpy(bToken + 1, &m_nTransferMode, sizeof(m_nTransferMode));
m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken));
m_ContextObject->Send2Client(bToken, sizeof(bToken));
}
void CFileManagerDlg::SendFileData()
@@ -1707,7 +1707,7 @@ void CFileManagerDlg::SendFileData()
if (nNumberOfBytesRead > 0) {
int nPacketSize = nNumberOfBytesRead + nHeadLength;
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, nPacketSize);
m_ContextObject->Send2Client(lpBuffer, nPacketSize);
}
LocalFree(lpBuffer);
}
@@ -1759,7 +1759,7 @@ void CFileManagerDlg::OnRemoteNewFolder()
LPBYTE lpBuffer = new BYTE[nPacketSize];
lpBuffer[0] = COMMAND_CREATE_FOLDER;
memcpy(lpBuffer + 1, file.GetBuffer(0), nPacketSize - 1);
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, nPacketSize);
m_ContextObject->Send2Client(lpBuffer, nPacketSize);
SAFE_DELETE_AR(lpBuffer);
}
}
@@ -1792,7 +1792,7 @@ void CFileManagerDlg::OnEndLabelEditListRemote(NMHDR* pNMHDR, LRESULT* pResult)
memcpy(lpBuffer + 1, strExistingFileName.GetBuffer(0), (strExistingFileName.GetLength() + 1) * sizeof(TCHAR));
memcpy(lpBuffer + 1 + (strExistingFileName.GetLength() + 1) * sizeof(TCHAR),
strNewFileName.GetBuffer(0), (strNewFileName.GetLength() + 1) * sizeof(TCHAR));
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, nPacketSize);
m_ContextObject->Send2Client(lpBuffer, nPacketSize);
LocalFree(lpBuffer);
}
*pResult = 1;
@@ -1802,7 +1802,7 @@ void CFileManagerDlg::OnDelete()
{
BYTE bBuff;
bBuff = COMMAND_FILE_NO_ENFORCE;
m_iocpServer->Send2Client(m_ContextObject, &bBuff, sizeof(bBuff));
m_ContextObject->Send2Client(&bBuff, sizeof(bBuff));
OnRemoteDelete();
}
@@ -1810,7 +1810,7 @@ void CFileManagerDlg::OnDeleteEnforce()
{
BYTE bBuff;
bBuff = COMMAND_FILE_ENFOCE;
m_iocpServer->Send2Client(m_ContextObject, &bBuff, sizeof(bBuff));
m_ContextObject->Send2Client(&bBuff, sizeof(bBuff));
OnRemoteDelete();
}
@@ -1846,7 +1846,7 @@ void CFileManagerDlg::OnRemoteOpenShow()
lpPacket[0] = COMMAND_OPEN_FILE_SHOW;
lpPacket[1] = m_bUseAdmin;
memcpy(lpPacket + 2, str.GetBuffer(0), nPacketLength - 2);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
LocalFree(lpPacket);
}
@@ -1864,7 +1864,7 @@ void CFileManagerDlg::OnRemoteOpenHide()
lpPacket[0] = COMMAND_OPEN_FILE_HIDE;
lpPacket[1] = m_bUseAdmin;
memcpy(lpPacket + 2, str.GetBuffer(0), nPacketLength - 2);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
LocalFree(lpPacket);
}
@@ -1881,7 +1881,7 @@ void CFileManagerDlg::OnRemoteInfo()
LPBYTE lpPacket = (LPBYTE)LocalAlloc(LPTR, nPacketLength);
lpPacket[0] = COMMAND_FILE_INFO;
memcpy(lpPacket + 1, str.GetBuffer(0), nPacketLength - 1);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
LocalFree(lpPacket);
}
@@ -1900,7 +1900,7 @@ void CFileManagerDlg::OnRemoteEncryption()
lpPacket[0] = COMMAND_FILE_Encryption;
memcpy(lpPacket + 1, strA.GetBuffer(0), nPacketLength - 1);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
LocalFree(lpPacket);
}
@@ -1919,7 +1919,7 @@ void CFileManagerDlg::OnRemoteDecrypt()
lpPacket[0] = COMMAND_FILE_Decrypt;
memcpy(lpPacket + 1, strA.GetBuffer(0), nPacketLength - 1);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
LocalFree(lpPacket);
}
@@ -1940,7 +1940,7 @@ void CFileManagerDlg::OnRemoteCopyFile()
lpPacket[0] = COMMAND_FILE_CopyFile;
memcpy(lpPacket + 1, file.GetBuffer(0), nPacketLength - 1);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
LocalFree(lpPacket);
ShowMessage(_T("׼<EFBFBD><EFBFBD>ճ<EFBFBD><EFBFBD>"));
}
@@ -1951,7 +1951,7 @@ void CFileManagerDlg::OnRemotePasteFile()
LPBYTE lpPacket = (LPBYTE)LocalAlloc(LPTR, nPacketLength);
lpPacket[0] = COMMAND_FILE_PasteFile;
memcpy(lpPacket + 1, m_Remote_Path.GetBuffer(0), nPacketLength - 1);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
LocalFree(lpPacket);
}
@@ -1975,7 +1975,7 @@ void CFileManagerDlg::OnRemotezip()
lpPacket[0] = COMMAND_FILE_zip;
memcpy(lpPacket + 1, file.GetBuffer(0), nPacketLength - 1);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
LocalFree(lpPacket);
ShowMessage(_T("<EFBFBD><EFBFBD>ʼѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>رմ<EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
@@ -1984,7 +1984,7 @@ void CFileManagerDlg::OnRemotezip()
void CFileManagerDlg::OnRemotezipstop()
{
BYTE lpPacket = COMMAND_FILE_zip_stop;
m_iocpServer->Send2Client(m_ContextObject, &lpPacket, 1);
m_ContextObject->Send2Client(&lpPacket, 1);
}
void CFileManagerDlg::OnRclickListRemotedriver(NMHDR* pNMHDR, LRESULT* pResult)
@@ -2033,7 +2033,7 @@ void CFileManagerDlg::OnRclickListRemotedriver(NMHDR* pNMHDR, LRESULT* pResult)
BYTE* lpbuffer = new BYTE[sizeof(SEARCH) + 1];
lpbuffer[0] = COMMAND_FILE_SEARCHPLUS_LIST;
memcpy(lpbuffer + 1, &S_search, sizeof(SEARCH));
m_iocpServer->Send2Client(m_ContextObject, (LPBYTE)lpbuffer, sizeof(SEARCH) + 1);
m_ContextObject->Send2Client((LPBYTE)lpbuffer, sizeof(SEARCH) + 1);
SAFE_DELETE_AR(lpbuffer);
SetWindowPos(NULL, 0, 0, 830, 830, SWP_NOMOVE);
}
@@ -2308,7 +2308,7 @@ void CFileManagerDlg::OnCompress()
LPBYTE lpPacket = (LPBYTE)LocalAlloc(LPTR, nPacketLength);
lpPacket[0] = COMMAND_COMPRESS_FILE_PARAM;
memcpy(lpPacket + 1, strMsg.GetBuffer(0), nPacketLength - 1);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
LocalFree(lpPacket);
}
@@ -2335,7 +2335,7 @@ void CFileManagerDlg::OnUncompress()
LPBYTE lpPacket = (LPBYTE)LocalAlloc(LPTR, nPacketLength);
lpPacket[0] = COMMAND_COMPRESS_FILE_PARAM;
memcpy(lpPacket + 1, strMsg.GetBuffer(0), nPacketLength - 1);
m_iocpServer->Send2Client(m_ContextObject, lpPacket, nPacketLength);
m_ContextObject->Send2Client(lpPacket, nPacketLength);
LocalFree(lpPacket);
}
@@ -2368,7 +2368,7 @@ void CFileManagerDlg::OnBtnSearch()
LPBYTE lpBuffer = new BYTE[nPacketSize];
lpBuffer[0] = COMMAND_SEARCH_FILE;
memcpy(lpBuffer + 1, &mFileSearchPacket, sizeof(mFileSearchPacket));
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, nPacketSize);
m_ContextObject->Send2Client(lpBuffer, nPacketSize);
SAFE_DELETE_AR(lpBuffer);
// <20><><EFBFBD>ð<EFBFBD>ť״̬
m_BtnSearch.SetWindowText(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."));
@@ -2441,7 +2441,7 @@ void CFileManagerDlg::OnBnClickedSearchStop()
GetDlgItem(ID_SEARCH_STOP)->EnableWindow(FALSE);
// TODO: Add your command handler code here
BYTE bToken = COMMAND_FILES_SEARCH_STOP;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE));
m_ContextObject->Send2Client(&bToken, sizeof(BYTE));
}
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@@ -61,7 +61,7 @@ EnHandleResult CProxyConnectServer::OnAccept(ITcpServer* pSender, CONNID dwConnI
if (pContext == NULL)
return HR_ERROR;
pContext->InitMember(dwConnID);
pContext->InitMember(dwConnID, nullptr);
pContext->m_Socket = dwConnID;
char szAddress[64] = {};
int iAddressLen = sizeof(szAddress);

View File

@@ -114,7 +114,7 @@ void CALLBACK CProxyMapDlg::NotifyProc(void *user, ClientContext* pContext, UINT
BYTE lpData[5] = "";
lpData[0] = COMMAND_PROXY_CLOSE;
memcpy(lpData + 1, &index, sizeof(DWORD));
g_pProxyMap->m_iocpServer->Send2Client(g_pProxyMap->m_ContextObject, lpData, 5);
g_pProxyMap->m_ContextObject->Send2Client(lpData, 5);
}
wsprintf(szMsg, _T("%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӶϿ<D3B6>\r\n"), index);
break;
@@ -122,7 +122,7 @@ void CALLBACK CProxyMapDlg::NotifyProc(void *user, ClientContext* pContext, UINT
break;
case NC_RECEIVE:
if (pContext->m_bProxyConnected == 2) {
g_pProxyMap->m_iocpServer->Send2Client(g_pProxyMap->m_ContextObject, pContext->InDeCompressedBuffer.GetBuffer(0),
g_pProxyMap->m_ContextObject->Send2Client(pContext->InDeCompressedBuffer.GetBuffer(0),
pContext->InDeCompressedBuffer.GetBufferLength());
wsprintf(szMsg, _T("%d <==<3D><> %d bytes\r\n"), index, pContext->InDeCompressedBuffer.GetBufferLength() - 5);
} else if (pContext->m_bProxyConnected == 0) {
@@ -139,7 +139,7 @@ void CALLBACK CProxyMapDlg::NotifyProc(void *user, ClientContext* pContext, UINT
buf[0] = COMMAND_PROXY_CONNECT; // 1<><31><EFBFBD>ֽ<EFBFBD> ip v4 <20><><EFBFBD><EFBFBD>
memcpy(buf + 1, &index, 4); // <20>ĸ<EFBFBD><C4B8>ֽ<EFBFBD> <20>׽<EFBFBD><D7BD>ֵı<D6B5><C4B1><EFBFBD>
memcpy(buf + 5, lpData + 4, 6); // 4<>ֽ<EFBFBD>ip 2<>ֽڶ˿<DAB6>
g_pProxyMap->m_iocpServer->Send2Client(g_pProxyMap->m_ContextObject, buf, sizeof(buf));
g_pProxyMap->m_ContextObject->Send2Client(buf, sizeof(buf));
in_addr inaddr = {};
inaddr.s_addr = *(DWORD*)(buf + 5);
char szmsg1[MAX_PATH];
@@ -152,7 +152,7 @@ void CALLBACK CProxyMapDlg::NotifyProc(void *user, ClientContext* pContext, UINT
memcpy(HostName + 7, &Socks5Request->szIP, Socks5Request->IP_LEN);
memcpy(HostName + 1, &index, 4);
memcpy(HostName + 5, &Socks5Request->szIP + Socks5Request->IP_LEN, 2);
g_pProxyMap->m_iocpServer->Send2Client(g_pProxyMap->m_ContextObject, HostName, Socks5Request->IP_LEN + 8);
g_pProxyMap->m_ContextObject->Send2Client(HostName, Socks5Request->IP_LEN + 8);
SAFE_DELETE_ARRAY(HostName);
wsprintf(szMsg, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> %d \r\n"), index);
} else if (lpData[3] == 4) { //ipv6

View File

@@ -163,7 +163,7 @@ BOOL CMachineDlg::OnInitDialog()
AdjustList();
BYTE lpBuffer = COMMAND_MACHINE_PROCESS;
m_iocpServer->Send2Client(m_ContextObject, (LPBYTE)&lpBuffer, 1);
m_ContextObject->Send2Client((LPBYTE)&lpBuffer, 1);
return TRUE;
}
@@ -333,7 +333,7 @@ void CMachineDlg::reflush()
int nID = m_tab.GetCurSel();
DeleteList();
BYTE TOKEN = MachineManager(nID);
m_iocpServer->Send2Client(m_ContextObject, (LPBYTE)&TOKEN, 1);
m_ContextObject->Send2Client((LPBYTE)&TOKEN, 1);
}
@@ -769,8 +769,6 @@ void CMachineDlg::OpenInfoDlg()
return;
CServiceInfoDlg pDlg(this);
pDlg.m_iocpServer = m_iocpServer;
pDlg.m_ContextObject = m_ContextObject;
pDlg.m_ServiceInfo.strSerName = m_list.GetItemText(nItem, 6);
@@ -800,7 +798,7 @@ void CMachineDlg::SendToken(BYTE bToken)
lpBuffer[0] = bToken;
memcpy(lpBuffer + 1, tSerName.GetBuffer(0), tSerName.GetLength() * sizeof(char));
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, nPacketLength);
m_ContextObject->Send2Client(lpBuffer, nPacketLength);
LocalFree(lpBuffer);
}
@@ -878,7 +876,7 @@ void CMachineDlg::ShowProcessList_menu()
lpBuffer[0] = COMMAND_PROCESS_KILLDEL;
DWORD dwProcessID = ((ListItem*)m_list.GetItemData(nItem))->pid;
memcpy(lpBuffer + 1, &dwProcessID, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, sizeof(DWORD) + 1);
m_ContextObject->Send2Client(lpBuffer, sizeof(DWORD) + 1);
SAFE_DELETE_AR(lpBuffer);
}
}
@@ -891,7 +889,7 @@ void CMachineDlg::ShowProcessList_menu()
lpBuffer[0] = COMMAND_PROCESS_KILL;
DWORD dwProcessID = ((ListItem*)m_list.GetItemData(nItem))->pid;
memcpy(lpBuffer + 1, &dwProcessID, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, sizeof(DWORD) + 1);
m_ContextObject->Send2Client(lpBuffer, sizeof(DWORD) + 1);
SAFE_DELETE_AR(lpBuffer);
}
}
@@ -904,7 +902,7 @@ void CMachineDlg::ShowProcessList_menu()
lpBuffer[0] = COMMAND_PROCESS_FREEZING;
DWORD dwProcessID = ((ListItem*)m_list.GetItemData(nItem))->pid;
memcpy(lpBuffer + 1, &dwProcessID, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, sizeof(DWORD) + 1);
m_ContextObject->Send2Client(lpBuffer, sizeof(DWORD) + 1);
SAFE_DELETE_AR(lpBuffer);
}
}
@@ -917,7 +915,7 @@ void CMachineDlg::ShowProcessList_menu()
lpBuffer[0] = COMMAND_PROCESS_THAW;
DWORD dwProcessID = ((ListItem*)m_list.GetItemData(nItem))->pid;
memcpy(lpBuffer + 1, &dwProcessID, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, sizeof(DWORD) + 1);
m_ContextObject->Send2Client(lpBuffer, sizeof(DWORD) + 1);
SAFE_DELETE_AR(lpBuffer);
}
}
@@ -930,7 +928,7 @@ void CMachineDlg::ShowProcessList_menu()
lpBuffer[0] = COMMAND_PROCESS_DEL;
DWORD dwProcessID = ((ListItem*)m_list.GetItemData(nItem))->pid;
memcpy(lpBuffer + 1, &dwProcessID, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, sizeof(DWORD) + 1);
m_ContextObject->Send2Client(lpBuffer, sizeof(DWORD) + 1);
SAFE_DELETE_AR(lpBuffer);
}
}
@@ -967,7 +965,7 @@ void CMachineDlg::ShowProcessList_menu()
DWORD wr = 0;
ReadFile(hFile, lpBuffer + sizeof(InjectData)+1, p_InjectData->datasize, &wr, NULL);
CloseHandle(hFile);
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, allsize);
m_ContextObject->Send2Client(lpBuffer, allsize);
SAFE_DELETE_AR(lpBuffer);
}
SAFE_DELETE(p_InjectData);
@@ -1041,7 +1039,7 @@ void CMachineDlg::ShowWindowsList_menu()
memcpy(lpMsgBuf + 1, &hwnd, sizeof(DWORD));
DWORD dHow = SW_RESTORE;
memcpy(lpMsgBuf + 1 + sizeof(hwnd), &dHow, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpMsgBuf, sizeof(lpMsgBuf));
m_ContextObject->Send2Client(lpMsgBuf, sizeof(lpMsgBuf));
}
}
break;
@@ -1056,7 +1054,7 @@ void CMachineDlg::ShowWindowsList_menu()
memcpy(lpMsgBuf + 1, &hwnd, sizeof(DWORD));
DWORD dHow = SW_HIDE;
memcpy(lpMsgBuf + 1 + sizeof(hwnd), &dHow, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpMsgBuf, sizeof(lpMsgBuf));
m_ContextObject->Send2Client(lpMsgBuf, sizeof(lpMsgBuf));
}
}
break;
@@ -1070,7 +1068,7 @@ void CMachineDlg::ShowWindowsList_menu()
DWORD hwnd = _tstoi(m_list.GetItemText(nItem, 1));
m_list.SetItemText(nItem, 3, _T("<EFBFBD><EFBFBD><EFBFBD>͹ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
memcpy(lpMsgBuf + 1, &hwnd, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpMsgBuf, sizeof(lpMsgBuf));
m_ContextObject->Send2Client(lpMsgBuf, sizeof(lpMsgBuf));
}
}
break;
@@ -1085,7 +1083,7 @@ void CMachineDlg::ShowWindowsList_menu()
memcpy(lpMsgBuf + 1, &hwnd, sizeof(DWORD));
DWORD dHow = SW_MAXIMIZE;
memcpy(lpMsgBuf + 1 + sizeof(hwnd), &dHow, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpMsgBuf, sizeof(lpMsgBuf));
m_ContextObject->Send2Client(lpMsgBuf, sizeof(lpMsgBuf));
}
}
break;
@@ -1100,7 +1098,7 @@ void CMachineDlg::ShowWindowsList_menu()
memcpy(lpMsgBuf + 1, &hwnd, sizeof(DWORD));
DWORD dHow = SW_MINIMIZE;
memcpy(lpMsgBuf + 1 + sizeof(hwnd), &dHow, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpMsgBuf, sizeof(lpMsgBuf));
m_ContextObject->Send2Client(lpMsgBuf, sizeof(lpMsgBuf));
}
}
break;
@@ -1114,7 +1112,7 @@ void CMachineDlg::ShowWindowsList_menu()
pid = m_list.GetItemText(nItem, 0);
DWORD dwProcessID = _tstoi(pid);
memcpy(lpBuffer + 1, &dwProcessID, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, sizeof(DWORD) + 1);
m_ContextObject->Send2Client(lpBuffer, sizeof(DWORD) + 1);
SAFE_DELETE_AR(lpBuffer);
}
}
@@ -1129,7 +1127,7 @@ void CMachineDlg::ShowWindowsList_menu()
pid = m_list.GetItemText(nItem, 0);
DWORD dwProcessID = _tstoi(pid);
memcpy(lpBuffer + 1, &dwProcessID, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, sizeof(DWORD) + 1);
m_ContextObject->Send2Client(lpBuffer, sizeof(DWORD) + 1);
SAFE_DELETE_AR(lpBuffer);
}
}
@@ -1144,7 +1142,7 @@ void CMachineDlg::ShowWindowsList_menu()
pid = m_list.GetItemText(nItem, 0);
DWORD dwProcessID = _tstoi(pid);
memcpy(lpBuffer + 1, &dwProcessID, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, sizeof(DWORD) + 1);
m_ContextObject->Send2Client(lpBuffer, sizeof(DWORD) + 1);
SAFE_DELETE_AR(lpBuffer);
}
}
@@ -1201,7 +1199,7 @@ void CMachineDlg::ShowNetStateList_menu()
lpBuffer[0] = COMMAND_PROCESS_KILL;
DWORD dwProcessID = ((ListItem*)m_list.GetItemData(nItem))->pid;
memcpy(lpBuffer + 1, &dwProcessID, sizeof(DWORD));
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, sizeof(DWORD) + 1);
m_ContextObject->Send2Client(lpBuffer, sizeof(DWORD) + 1);
SAFE_DELETE_AR(lpBuffer);
}
}
@@ -1270,7 +1268,7 @@ void CMachineDlg::ShowSoftWareList_menu()
LPBYTE lpBuffer = new BYTE[1 + str_a.GetLength()];
lpBuffer[0] = COMMAND_APPUNINSTALL;
memcpy(lpBuffer + 1, str_a.GetBuffer(0), str_a.GetLength());
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, str_a.GetLength() + 1);
m_ContextObject->Send2Client(lpBuffer, str_a.GetLength() + 1);
SAFE_DELETE_AR(lpBuffer);
}
}
@@ -1366,7 +1364,7 @@ void CMachineDlg::ShowTaskList_menu()
memcpy(lpBuffer + offset, taskname.GetBuffer(), lstrlen(taskname.GetBuffer()) * 2 + 2);
offset += lstrlen(taskname.GetBuffer()) * 2 + 2;
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, nPacketLength);
m_ContextObject->Send2Client(lpBuffer, nPacketLength);
LocalFree(lpBuffer);
}
@@ -1394,7 +1392,7 @@ void CMachineDlg::ShowTaskList_menu()
memcpy(lpBuffer + offset, taskname.GetBuffer(), lstrlen(taskname.GetBuffer()) * 2 + 2);
offset += lstrlen(taskname.GetBuffer()) * 2 + 2;
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, nPacketLength);
m_ContextObject->Send2Client(lpBuffer, nPacketLength);
LocalFree(lpBuffer);
}
@@ -1422,7 +1420,7 @@ void CMachineDlg::ShowTaskList_menu()
memcpy(lpBuffer + offset, taskname.GetBuffer(), lstrlen(taskname.GetBuffer()) * 2 + 2);
offset += lstrlen(taskname.GetBuffer()) * 2 + 2;
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, nPacketLength);
m_ContextObject->Send2Client(lpBuffer, nPacketLength);
LocalFree(lpBuffer);
}
@@ -1454,7 +1452,7 @@ void CMachineDlg::ShowTaskList_menu()
memcpy(lpBuffer + offset, dlg->m_Description.GetBuffer(), lstrlen(dlg->m_Description.GetBuffer()) * 2 + 2);
offset += lstrlen(dlg->m_Description.GetBuffer()) * 2 + 2;
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, len);
m_ContextObject->Send2Client(lpBuffer, len);
LocalFree(lpBuffer);
}
@@ -1465,7 +1463,7 @@ void CMachineDlg::ShowTaskList_menu()
break;
case 104: {
BYTE bToken = COMMAND_MACHINE_TASK;
m_iocpServer->Send2Client(m_ContextObject, &bToken, 1);
m_ContextObject->Send2Client(&bToken, 1);
}
break;
}
@@ -1560,7 +1558,7 @@ void CMachineDlg::ShowServiceList_menu()
bToken = COMMAND_SERVICE_LIST_WIN32;
else
bToken = COMMAND_SERVICE_LIST_DRIVER;
m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE));
m_ContextObject->Send2Client(&bToken, sizeof(BYTE));
}
break;
case 700:
@@ -1630,7 +1628,7 @@ void CMachineDlg::ShowHostsList_menu()
LPBYTE lpBuffer = new BYTE[1 + Data_a.GetLength()];
lpBuffer[0] = COMMAND_HOSTS_SET;
memcpy(lpBuffer + 1, Data_a.GetBuffer(0), Data_a.GetLength());
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, Data_a.GetLength() + 1);
m_ContextObject->Send2Client(lpBuffer, Data_a.GetLength() + 1);
SAFE_DELETE_AR(lpBuffer);
}
break;

View File

@@ -82,7 +82,7 @@ void CServiceInfoDlg::SendToken(BYTE bToken)
lpBuffer[0] = bToken;
memcpy(lpBuffer + 1, m_ServiceInfo.strSerName.GetBuffer(0), m_ServiceInfo.strSerName.GetLength());
m_iocpServer->Send2Client(m_ContextObject, lpBuffer, nPacketLength);
m_ContextObject->Send2Client(lpBuffer, nPacketLength);
LocalFree(lpBuffer);
}

View File

@@ -19,7 +19,6 @@ public:
CServiceInfoDlg(CWnd* pParent = NULL);
ClientContext* m_ContextObject;
Server* m_iocpServer;
enum { IDD = IDD_SERVICE_INFO };
CComboBox m_combox_runway;