|
@@ -7,8 +7,8 @@ const int SOCK_TCP = SOCK_STREAM - 1;
|
|
const int SOCK_UDP = SOCK_DGRAM - 1;
|
|
const int SOCK_UDP = SOCK_DGRAM - 1;
|
|
const int AF_IPV4 = 0;
|
|
const int AF_IPV4 = 0;
|
|
const int AF_IPV6 = 1;
|
|
const int AF_IPV6 = 1;
|
|
-#define PAK_LEN sizeof(DataHeader)
|
|
|
|
-#define HEADER_LEN sizeof(DataHeader)
|
|
|
|
|
|
+#define PAK_LEN sizeof(SATProtocol::DataHeader)
|
|
|
|
+#define HEADER_LEN sizeof(SATProtocol::DataHeader)
|
|
// 쏵똑係;
|
|
// 쏵똑係;
|
|
CDlgProBar* g_pDlgProBar = NULL;
|
|
CDlgProBar* g_pDlgProBar = NULL;
|
|
|
|
|
|
@@ -27,6 +27,8 @@ void CSATClient::OnThreadExit(CSocketHandle* pSH)
|
|
{
|
|
{
|
|
ASSERT(pSH == m_SocketClient);
|
|
ASSERT(pSH == m_SocketClient);
|
|
DeleteCriticalSection(&pSH->m_hClient2SrvSection);
|
|
DeleteCriticalSection(&pSH->m_hClient2SrvSection);
|
|
|
|
+ m_bSocket = FALSE;
|
|
|
|
+ TRACE(_T("======窟넋藁놔.\r\n"));
|
|
(pSH);
|
|
(pSH);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -93,7 +95,7 @@ bool CSATClient::OnSend(const byte* pData, int nLen)
|
|
bool CSATClient::OnReceive(const byte* pData, int nLen)
|
|
bool CSATClient::OnReceive(const byte* pData, int nLen)
|
|
{
|
|
{
|
|
// 鬼黨관庫;
|
|
// 鬼黨관庫;
|
|
- DataHeader* phead = NULL;
|
|
|
|
|
|
+ SATProtocol::DataHeader* phead = NULL;
|
|
if (lastData.size() == 0)
|
|
if (lastData.size() == 0)
|
|
{
|
|
{
|
|
// 꼇璃관庫;
|
|
// 꼇璃관庫;
|
|
@@ -105,13 +107,13 @@ bool CSATClient::OnReceive(const byte* pData, int nLen)
|
|
else
|
|
else
|
|
{
|
|
{
|
|
// 관庫념璃;
|
|
// 관庫념璃;
|
|
- phead = (DataHeader*)pData;
|
|
|
|
|
|
+ phead = (SATProtocol::DataHeader*)pData;
|
|
|
|
|
|
// 供憐돨관;
|
|
// 供憐돨관;
|
|
if (phead->len == nLen)
|
|
if (phead->len == nLen)
|
|
{
|
|
{
|
|
OutputDebugString("A:供憐돨관;\n");
|
|
OutputDebugString("A:供憐돨관;\n");
|
|
- TaskProcess((Package*)pData);
|
|
|
|
|
|
+ TaskProcess((SATProtocol::Package*)pData);
|
|
}
|
|
}
|
|
// 鬼관;
|
|
// 鬼관;
|
|
else if (phead->len > nLen)
|
|
else if (phead->len > nLen)
|
|
@@ -124,7 +126,7 @@ bool CSATClient::OnReceive(const byte* pData, int nLen)
|
|
{
|
|
{
|
|
OutputDebugString("A:낚관;\n");
|
|
OutputDebugString("A:낚관;\n");
|
|
lastData.append((char*)pData + phead->len, nLen - phead->len);
|
|
lastData.append((char*)pData + phead->len, nLen - phead->len);
|
|
- TaskProcess((Package*)pData);
|
|
|
|
|
|
+ TaskProcess((SATProtocol::Package*)pData);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -133,14 +135,14 @@ bool CSATClient::OnReceive(const byte* pData, int nLen)
|
|
int lastlen = nLen;
|
|
int lastlen = nLen;
|
|
if (lastData.size() >= PAK_LEN)
|
|
if (lastData.size() >= PAK_LEN)
|
|
{
|
|
{
|
|
- phead = (DataHeader*)lastData.data();
|
|
|
|
|
|
+ phead = (SATProtocol::DataHeader*)lastData.data();
|
|
if (phead->len <= lastData.size() + nLen)
|
|
if (phead->len <= lastData.size() + nLen)
|
|
{
|
|
{
|
|
if (phead->len <= lastData.size())
|
|
if (phead->len <= lastData.size())
|
|
{
|
|
{
|
|
OutputDebugString("C:낚관;\n");
|
|
OutputDebugString("C:낚관;\n");
|
|
// 供憐관;
|
|
// 供憐관;
|
|
- TaskProcess((Package*)lastData.substr(0, phead->len).data());
|
|
|
|
|
|
+ TaskProcess((SATProtocol::Package*)lastData.substr(0, phead->len).data());
|
|
|
|
|
|
lastData = lastData.substr(phead->len);
|
|
lastData = lastData.substr(phead->len);
|
|
lastData.append((char*)pData, nLen);
|
|
lastData.append((char*)pData, nLen);
|
|
@@ -151,7 +153,7 @@ bool CSATClient::OnReceive(const byte* pData, int nLen)
|
|
lastlen = lastData.size() + nLen - phead->len;
|
|
lastlen = lastData.size() + nLen - phead->len;
|
|
lastData.append((char*)pData, nLen - lastlen);
|
|
lastData.append((char*)pData, nLen - lastlen);
|
|
// 供憐관;
|
|
// 供憐관;
|
|
- TaskProcess((Package*)lastData.data());
|
|
|
|
|
|
+ TaskProcess((SATProtocol::Package*)lastData.data());
|
|
// 假岱관;
|
|
// 假岱관;
|
|
lastData.clear();
|
|
lastData.clear();
|
|
if (lastlen)
|
|
if (lastlen)
|
|
@@ -178,14 +180,14 @@ bool CSATClient::OnReceive(const byte* pData, int nLen)
|
|
{
|
|
{
|
|
// 틈냥供憐관庫;
|
|
// 틈냥供憐관庫;
|
|
lastData.append((char*)pData, diflen);
|
|
lastData.append((char*)pData, diflen);
|
|
- phead = (DataHeader*)lastData.data();
|
|
|
|
|
|
+ phead = (SATProtocol::DataHeader*)lastData.data();
|
|
|
|
|
|
// 供憐관;
|
|
// 供憐관;
|
|
if (phead->len == PAK_LEN + nLen - diflen)
|
|
if (phead->len == PAK_LEN + nLen - diflen)
|
|
{
|
|
{
|
|
OutputDebugString("B:供憐관;\n");
|
|
OutputDebugString("B:供憐관;\n");
|
|
lastData.append((char*)pData + diflen, nLen - diflen);
|
|
lastData.append((char*)pData + diflen, nLen - diflen);
|
|
- TaskProcess((Package*)lastData.data());
|
|
|
|
|
|
+ TaskProcess((SATProtocol::Package*)lastData.data());
|
|
lastData.clear();
|
|
lastData.clear();
|
|
}
|
|
}
|
|
// 鬼관;
|
|
// 鬼관;
|
|
@@ -200,7 +202,7 @@ bool CSATClient::OnReceive(const byte* pData, int nLen)
|
|
OutputDebugString("B:낚관;\n");
|
|
OutputDebugString("B:낚관;\n");
|
|
// 莉供냥관;
|
|
// 莉供냥관;
|
|
lastData.append((char*)pData + diflen, phead->len - PAK_LEN);
|
|
lastData.append((char*)pData + diflen, phead->len - PAK_LEN);
|
|
- TaskProcess((Package*)lastData.data());
|
|
|
|
|
|
+ TaskProcess((SATProtocol::Package*)lastData.data());
|
|
lastData.clear();
|
|
lastData.clear();
|
|
int last = nLen - diflen - phead->len + PAK_LEN;
|
|
int last = nLen - diflen - phead->len + PAK_LEN;
|
|
if (last)
|
|
if (last)
|
|
@@ -225,11 +227,14 @@ bool CSATClient::OnConnect()
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
-void CSATClient::TaskProcess(Package* pak)
|
|
|
|
|
|
+void CSATClient::TaskProcess(SATProtocol::Package* pak)
|
|
{
|
|
{
|
|
- DataHeader* pHeader = &pak->header;
|
|
|
|
|
|
+ SATProtocol::DataHeader* pHeader = &pak->header;
|
|
if (pHeader->protocol == 0xAA) {
|
|
if (pHeader->protocol == 0xAA) {
|
|
- Sleep(20000);
|
|
|
|
|
|
+#ifdef _DEBUG
|
|
|
|
+ // 儺낀속潼움鞫刻珂쇌;
|
|
|
|
+ Sleep(15000);
|
|
|
|
+#endif
|
|
if (g_pDlgProBar) {
|
|
if (g_pDlgProBar) {
|
|
while (!::IsWindow(g_pDlgProBar->m_hWnd));
|
|
while (!::IsWindow(g_pDlgProBar->m_hWnd));
|
|
g_pDlgProBar->PostMessage(WM_STOPTHREAD);
|
|
g_pDlgProBar->PostMessage(WM_STOPTHREAD);
|
|
@@ -238,18 +243,20 @@ void CSATClient::TaskProcess(Package* pak)
|
|
|
|
|
|
switch (pHeader->cmd)
|
|
switch (pHeader->cmd)
|
|
{
|
|
{
|
|
- case CMD_LOGIN:
|
|
|
|
|
|
+ case SATProtocol::CMD_LOGIN:
|
|
{
|
|
{
|
|
- TPResponse* pRespone = (TPResponse*)pak->buf;
|
|
|
|
|
|
+ SATProtocol::LoginResp* resp = (SATProtocol::LoginResp*)pak->buf;
|
|
|
|
+ SATData::login_resp.bStatus = resp->bStatus;
|
|
|
|
+ _stprintf_s(SATData::login_resp.szMessage, _T("%s"), resp->szMessage);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
- case CMD_LOGOUT:
|
|
|
|
|
|
+ case SATProtocol::CMD_LOGOUT:
|
|
break;
|
|
break;
|
|
- case CMD_ADD_DEVICE:
|
|
|
|
|
|
+ case SATProtocol::CMD_ADD_DEVICE:
|
|
break;
|
|
break;
|
|
- case CMD_DEL_DEVICE:
|
|
|
|
|
|
+ case SATProtocol::CMD_DEL_DEVICE:
|
|
break;
|
|
break;
|
|
- case CMD_QUERY_DEVICES:
|
|
|
|
|
|
+ case SATProtocol::CMD_QUERY_DEVICES:
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
break;
|
|
break;
|
|
@@ -320,14 +327,18 @@ void CSATClient::GetAddress(const SockAddrIn& addrIn, CString& rString) const
|
|
|
|
|
|
bool CSATClient::TCPLogin(std::string strUserName, std::string strPassword)
|
|
bool CSATClient::TCPLogin(std::string strUserName, std::string strPassword)
|
|
{
|
|
{
|
|
- int len = HEADER_LEN + sizeof(TPLogin);
|
|
|
|
|
|
+ if (!m_bSocket) Start();
|
|
|
|
+ if (!m_bSocket) return false;
|
|
|
|
+
|
|
|
|
+ SATData::login_resp = {0};
|
|
|
|
+ int len = HEADER_LEN + sizeof(SATProtocol::UserInfo);
|
|
byte* pbuff = new byte[len];
|
|
byte* pbuff = new byte[len];
|
|
memset(pbuff, 0, len);
|
|
memset(pbuff, 0, len);
|
|
- Package* pData = (Package*)pbuff;
|
|
|
|
|
|
+ SATProtocol::Package* pData = (SATProtocol::Package*)pbuff;
|
|
|
|
|
|
pData->header.protocol = 0xAA;
|
|
pData->header.protocol = 0xAA;
|
|
pData->header.len = len;
|
|
pData->header.len = len;
|
|
- pData->header.cmd = CMD_LOGIN;
|
|
|
|
|
|
+ pData->header.cmd = SATProtocol::CMD_LOGIN;
|
|
|
|
|
|
memcpy(pData->buf, strUserName.c_str(), strUserName.size());
|
|
memcpy(pData->buf, strUserName.c_str(), strUserName.size());
|
|
memcpy(pData->buf + MAX_PATH, strPassword.c_str(), strPassword.size());
|
|
memcpy(pData->buf + MAX_PATH, strPassword.c_str(), strPassword.size());
|