浏览代码

修复服务器使用sizeof()计算WriteFile的数据,导致客户端产生ERROR_MORE_DATA的问题。

sat23 3 年之前
父节点
当前提交
68c07326f9
共有 2 个文件被更改,包括 8 次插入7 次删除
  1. 4 4
      AssistManager/AssistManager/AssistManager.vcproj
  2. 4 3
      AssistManager/AssistManager/PipeService.cpp

+ 4 - 4
AssistManager/AssistManager/AssistManager.vcproj

@@ -18,8 +18,8 @@
 	<Configurations>
 		<Configuration
 			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
+			OutputDirectory="..\..\..\..\..\bin\$(SolutionName)"
+			IntermediateDirectory="$(OutDir)\$(ProjectName)\$(ConfigurationName)"
 			ConfigurationType="1"
 			UseOfMFC="2"
 			CharacterSet="2"
@@ -96,8 +96,8 @@
 		</Configuration>
 		<Configuration
 			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
+			OutputDirectory="..\..\..\..\..\bin\$(SolutionName)"
+			IntermediateDirectory="$(OutDir)\$(ProjectName)\$(ConfigurationName)"
 			ConfigurationType="1"
 			UseOfMFC="2"
 			CharacterSet="1"

+ 4 - 3
AssistManager/AssistManager/PipeService.cpp

@@ -287,14 +287,15 @@ bool CIOCPPipe::_DoAccpet( PER_IO_CONTEXT* pIoContext )
 {
 	// 客户端连接后,发出指令:获取客户端注入进程信息;
     pIoContext->m_OpType = OP_SEND;
-    _stprintf_s(pIoContext->chReply, _T("%s"), _T("1001\n"));
-    pIoContext->cbToWrite = sizeof(pIoContext->chReply);
+    _stprintf_s(pIoContext->chReply, _T("%s"), _T("1001"));
+    pIoContext->cbToWrite = _tcslen(pIoContext->chReply);
 	
+    DWORD dwNumberOfBytesWritten = 0;
     BOOL fWrite = WriteFile(
         pIoContext->m_PipeAccept,
         pIoContext->chReply,
         pIoContext->cbToWrite,
-        &pIoContext->cbToWrite,
+        &dwNumberOfBytesWritten,
         (LPOVERLAPPED)pIoContext);
     
     if (!fWrite) {