mirror of
https://github.com/yuanyuanxiang/SimpleRemoter.git
synced 2026-01-22 07:14:15 +08:00
Feature: Add reconnect logic for remote desktop control
This commit is contained in:
@@ -63,7 +63,7 @@ private:
|
||||
BOOL InitializeIOCP(VOID);
|
||||
VOID OnAccept();
|
||||
PCONTEXT_OBJECT AllocateContext(SOCKET s);
|
||||
VOID RemoveStaleContext(CONTEXT_OBJECT* ContextObject);
|
||||
BOOL RemoveStaleContext(CONTEXT_OBJECT* ContextObject);
|
||||
VOID MoveContextToFreePoolList(CONTEXT_OBJECT* ContextObject);
|
||||
VOID PostRecv(CONTEXT_OBJECT* ContextObject);
|
||||
BOOL HandleIO(IOType PacketFlags, PCONTEXT_OBJECT ContextObject, DWORD dwTrans, ZSTD_DCtx* ctx);
|
||||
@@ -130,6 +130,12 @@ public:
|
||||
m_IPAddress = pContext->GetPeerName().c_str();
|
||||
m_hIcon = nIcon > 0 ? LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(nIcon)) : NULL;
|
||||
}
|
||||
int UpdateContext(CONTEXT_OBJECT* pContext) {
|
||||
m_ContextObject = pContext;
|
||||
m_iocpServer = pContext->GetServer();
|
||||
m_ContextObject->hDlg = this;
|
||||
return 0;
|
||||
}
|
||||
virtual ~CDialogBase() {}
|
||||
|
||||
public:
|
||||
@@ -169,12 +175,22 @@ public:
|
||||
{
|
||||
delete this;
|
||||
}
|
||||
virtual BOOL ShouldReconnect() {
|
||||
return FALSE;
|
||||
}
|
||||
// ȡ<><C8A1> SOCKET <20><>ȡ<EFBFBD><C8A1><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD>
|
||||
void CancelIO()
|
||||
{
|
||||
m_bIsClosed = TRUE;
|
||||
|
||||
m_ContextObject->CancelIO();
|
||||
}
|
||||
BOOL IsClosed() const {
|
||||
return m_bIsClosed;
|
||||
}
|
||||
BOOL SayByeBye() {
|
||||
BYTE bToken = COMMAND_BYE;
|
||||
return m_ContextObject->Send2Client(&bToken, 1);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user