Răsfoiți Sursa

1、掉线重连暂时未实现
2、将所有tcp通信返回值,保存到全局变量中;

scbc.sat2 5 ani în urmă
părinte
comite
7bdefba323

+ 6 - 2
SATHelper/SATHelper/DlgLogin.cpp

@@ -42,7 +42,10 @@ BOOL CDlgLogin::OnInitDialog()
 	CDialogEx::OnInitDialog();
 	CDialogEx::OnInitDialog();
 
 
 	// TODO:  在此添加额外的初始化
 	// TODO:  在此添加额外的初始化
-
+#ifdef _DEBUG
+	SetDlgItemText(IDC_EDIT_USERNAME, "superAdmin");
+	SetDlgItemText(IDC_EDIT_PASSWORD, "123456");
+#endif
 	return TRUE;  // return TRUE unless you set the focus to a control
 	return TRUE;  // return TRUE unless you set the focus to a control
 				  // 异常: OCX 属性页应返回 FALSE
 				  // 异常: OCX 属性页应返回 FALSE
 }
 }
@@ -57,7 +60,8 @@ void CDlgLogin::OnBnClickedOk()
 
 
 	if ( CSATClient::GetInstance()->TCPLogin(strUserName.GetString(), strPassword.GetString()) )
 	if ( CSATClient::GetInstance()->TCPLogin(strUserName.GetString(), strPassword.GetString()) )
 	{
 	{
-
+		if (!SATData::login_resp.bStatus)
+			AfxMessageBox("登录失败");
 	}
 	}
 
 
 	CDialogEx::OnOK();
 	CDialogEx::OnOK();

+ 3 - 6
SATHelper/SATHelper/DlgProBar.cpp

@@ -112,8 +112,7 @@ DWORD g_dwTimeOut = 30000;
 void CDlgProBar::OnTimer(UINT_PTR nIDEvent)
 void CDlgProBar::OnTimer(UINT_PTR nIDEvent)
 {
 {
 	// TODO: 在此添加消息处理程序代码和/或调用默认值
 	// TODO: 在此添加消息处理程序代码和/或调用默认值
-	if ( nIDEvent == 0 )
-	{
+	if ( nIDEvent == 0 ) {
 		KillTimer(0);
 		KillTimer(0);
 
 
 		// 是否超时;
 		// 是否超时;
@@ -149,12 +148,10 @@ void CDlgProBar::OnTimer(UINT_PTR nIDEvent)
 		long pause = ((long*)pItem->value)[m_nCurFrameIndex] * 1000;
 		long pause = ((long*)pItem->value)[m_nCurFrameIndex] * 1000;
 		pause = pause ? pause : 39;
 		pause = pause ? pause : 39;
 		
 		
-		if (m_sbRuning)
-		{
+		if (m_sbRuning) {
 			SetTimer(0, pause, NULL);
 			SetTimer(0, pause, NULL);
 		}
 		}
-		else
-		{
+		else {
 			if (m_spImg)
 			if (m_spImg)
 				delete m_spImg;
 				delete m_spImg;
 			m_spImg = NULL;
 			m_spImg = NULL;

+ 1 - 0
SATHelper/SATHelper/Global.cpp

@@ -155,6 +155,7 @@ namespace Global
 	TCHAR g_szConfig[MAX_PATH] = { 0 };
 	TCHAR g_szConfig[MAX_PATH] = { 0 };
 	STConfig g_Config;
 	STConfig g_Config;
 	TCHAR g_szPython27Dir[MAX_PATH] = {0};
 	TCHAR g_szPython27Dir[MAX_PATH] = {0};
+	ULONGLONG g_ulWaitTime = 15000;
 	//////////////////////////////////////////////////////////////////////////
 	//////////////////////////////////////////////////////////////////////////
 	// È«¾Öº¯Êý;
 	// È«¾Öº¯Êý;
 	/************************************************************************/
 	/************************************************************************/

+ 2 - 1
SATHelper/SATHelper/Global.h

@@ -71,7 +71,8 @@ namespace Global
 	extern TCHAR g_szConfig[MAX_PATH];
 	extern TCHAR g_szConfig[MAX_PATH];
 	extern STConfig g_Config;
 	extern STConfig g_Config;
 	extern TCHAR g_szPython27Dir[MAX_PATH];
 	extern TCHAR g_szPython27Dir[MAX_PATH];
-	
+	extern ULONGLONG g_ulWaitTime;
+
 	//////////////////////////////////////////////////////////////////////////
 	//////////////////////////////////////////////////////////////////////////
 	// È«¾Öº¯Êý;
 	// È«¾Öº¯Êý;
 	void GetConfig();
 	void GetConfig();

+ 35 - 24
SATHelper/SATHelper/SATClient.cpp

@@ -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());

+ 3 - 2
SATHelper/SATHelper/SATClient.h

@@ -3,7 +3,8 @@
 
 
 #include "SocketHandle.h"
 #include "SocketHandle.h"
 #include "SocketClientImpl.h"
 #include "SocketClientImpl.h"
-#include "SATProtocol.h"
+//#include "SATProtocol.h"
+#include "SATData.h"
 
 
 #pragma once
 #pragma once
 class CSATClient:public ISocketClientHandler
 class CSATClient:public ISocketClientHandler
@@ -43,7 +44,7 @@ private:
 	bool OnReceive(const byte* pData, int nLen);
 	bool OnReceive(const byte* pData, int nLen);
 	bool OnClose();
 	bool OnClose();
 	bool OnConnect();
 	bool OnConnect();
-	void TaskProcess(Package *pak);
+	void TaskProcess(SATProtocol::Package *pak);
 
 
 public:
 public:
 	// Æô¶¯TCP¿Í»§¶ËÁ¬½ÓʵÀý;
 	// Æô¶¯TCP¿Í»§¶ËÁ¬½ÓʵÀý;

+ 7 - 0
SATHelper/SATHelper/SATData.cpp

@@ -0,0 +1,7 @@
+#include "stdafx.h"
+#include "SATData.h"
+
+namespace SATData {
+	SATProtocol::UserInfo login;
+	SATProtocol::LoginResp login_resp;
+};

+ 14 - 0
SATHelper/SATHelper/SATData.h

@@ -0,0 +1,14 @@
+#ifndef __SAT_DATA__
+#define __SAT_DATA__
+
+#pragma once
+
+#include "SATProtocol.h"
+namespace SATData {
+	// µÇ¼²ÎÊý;
+	extern SATProtocol::UserInfo login;
+	// µÇ¼·µ»Ø;
+	extern SATProtocol::LoginResp login_resp;
+};
+
+#endif // __SAT_DATA__

+ 2 - 3
SATHelper/SATHelper/SATHelper.cpp

@@ -146,11 +146,10 @@ BOOL CSATHelperApp::InitInstance()
 	Global::GetConfig();
 	Global::GetConfig();
 	Global::WriteTextLog("程序启动");
 	Global::WriteTextLog("程序启动");
 
 
-#ifdef _DEBUG 
+	// 启动TCP客户端;
 	CSATClient::GetInstance()->Start();
 	CSATClient::GetInstance()->Start();
-	//CSATClient::GetInstance()->TCPLogin("superAdmin", "123456");
-#endif
 
 
+	// 启动TCP服务端;
 	g_iocp.LoadSocketLib();
 	g_iocp.LoadSocketLib();
 	g_iocp.Start(5566);
 	g_iocp.Start(5566);
 #endif
 #endif

+ 2 - 0
SATHelper/SATHelper/SATHelper.vcxproj

@@ -231,6 +231,7 @@
     <ClInclude Include="OutputWnd.h" />
     <ClInclude Include="OutputWnd.h" />
     <ClInclude Include="QCAP.H" />
     <ClInclude Include="QCAP.H" />
     <ClInclude Include="SATClient.h" />
     <ClInclude Include="SATClient.h" />
+    <ClInclude Include="SATData.h" />
     <ClInclude Include="SATProtocol.h" />
     <ClInclude Include="SATProtocol.h" />
     <ClInclude Include="SocketClientImpl.h" />
     <ClInclude Include="SocketClientImpl.h" />
     <ClInclude Include="SocketHandle.h" />
     <ClInclude Include="SocketHandle.h" />
@@ -282,6 +283,7 @@
     <ClCompile Include="MemoryComm.cpp" />
     <ClCompile Include="MemoryComm.cpp" />
     <ClCompile Include="OutputWnd.cpp" />
     <ClCompile Include="OutputWnd.cpp" />
     <ClCompile Include="SATClient.cpp" />
     <ClCompile Include="SATClient.cpp" />
+    <ClCompile Include="SATData.cpp" />
     <ClCompile Include="SocketHandle.cpp" />
     <ClCompile Include="SocketHandle.cpp" />
     <ClCompile Include="stdafx.cpp">
     <ClCompile Include="stdafx.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>

+ 6 - 0
SATHelper/SATHelper/SATHelper.vcxproj.filters

@@ -201,6 +201,9 @@
     <ClInclude Include="CharEncoding.h">
     <ClInclude Include="CharEncoding.h">
       <Filter>字符编码</Filter>
       <Filter>字符编码</Filter>
     </ClInclude>
     </ClInclude>
+    <ClInclude Include="SATData.h">
+      <Filter>SATClient</Filter>
+    </ClInclude>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClCompile Include="SATHelper.cpp">
     <ClCompile Include="SATHelper.cpp">
@@ -326,6 +329,9 @@
     <ClCompile Include="CharEncoding.cpp">
     <ClCompile Include="CharEncoding.cpp">
       <Filter>字符编码</Filter>
       <Filter>字符编码</Filter>
     </ClCompile>
     </ClCompile>
+    <ClCompile Include="SATData.cpp">
+      <Filter>SATClient</Filter>
+    </ClCompile>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="SATHelper.rc">
     <ResourceCompile Include="SATHelper.rc">