瀏覽代碼

客户端Connect成功后,向服务端发送消息

Jeff 3 年之前
父節點
當前提交
f9d96ba4e9
共有 2 個文件被更改,包括 21 次插入2 次删除
  1. 18 2
      Source/OGCAssist/OGCAssist/PipeClient.cpp
  2. 3 0
      Source/OGCAssist/OGCAssist/PipeClient.h

+ 18 - 2
Source/OGCAssist/OGCAssist/PipeClient.cpp

@@ -56,7 +56,7 @@ DWORD CPipeClient::ConnectThread(LPVOID lpParam)
     {
         if ( pInstance->m_hPipeInst != INVALID_HANDLE_VALUE ) {
             // 1分钟检测;
-            Sleep(60000);
+            Sleep(10000);
             Utility::dprintf(_T("m_hPipeInst 已存在\n"));
             continue;
         }
@@ -92,7 +92,23 @@ DWORD CPipeClient::ConnectThread(LPVOID lpParam)
                 Utility::dprintf(_T("SetNamedPipeHandleState failed. GLE=%d\n"), GetLastError() ); 
                 CloseHandle(pInstance->m_hPipeInst);
                 pInstance->m_hPipeInst = INVALID_HANDLE_VALUE;
+				continue;
             }
+
+#pragma region 向服务端发送消息:劫持状态+按钮状态;			
+			MSG_INFO msg_info;
+			msg_info.dwClientId = GetCurrentProcessId();
+			_stprintf(msg_info.szClientName, _T("%s"), _T("OGCAssist"));
+			msg_info.byResult = TRUE;
+			_stprintf((TCHAR*)msg_info.byData, _T("%s"), _T("OGCAssist dfdfdfdfdfdfdfdfdf"));
+
+			PACKAGE pak;
+			pak.header.byMsgType = C2S_CONNECT;
+			pak.header.dwPackageLen = sizeof(DATAHEADER) + sizeof(MSG_INFO);
+			pak.buf = &msg_info;
+
+			pInstance->SendPackage(pak);			
+#pragma endregion
         }
         else
         {
@@ -139,7 +155,7 @@ DWORD CPipeClient::ReadMsgThread(LPVOID lpParam)
             if ( !WaitFinish(pInstance->m_hPipeInst, &m_IoRead) )
             {
                 // 出现错误;
-                Utility::dprintf("CloseHandle\n");
+                Utility::dprintf(_T("CloseHandle\n"));
                 CloseHandle(pInstance->m_hPipeInst);
                 pInstance->m_hPipeInst = INVALID_HANDLE_VALUE;
             }

+ 3 - 0
Source/OGCAssist/OGCAssist/PipeClient.h

@@ -26,6 +26,9 @@ typedef struct _PER_IO_CONTEXT
 	}
 }PER_IO_CONTEXT, *PPER_IO_CONTEXT;
 
+// 连接成功时,向服务器发送消息;
+typedef BOOL(CALLBACK* OnConnected)();
+
 class CPipeClient
 {
 public: