|
@@ -151,6 +151,11 @@ DWORD CPipeClient::ReadMsgThread(LPVOID lpParam)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ DATAHEADER header;
|
|
|
|
+ MSG_INFO msg_info;
|
|
|
|
+ memcpy(&header, m_IoRead.szBuffer, sizeof(DATAHEADER));
|
|
|
|
+ memcpy(&msg_info, m_IoRead.szBuffer+sizeof(DATAHEADER), sizeof(MSG_INFO));
|
|
|
|
+
|
|
// 重置Buffer;
|
|
// 重置Buffer;
|
|
memset(m_IoRead.szBuffer, 0, BUFSIZE);
|
|
memset(m_IoRead.szBuffer, 0, BUFSIZE);
|
|
#else // 分配的缓冲区,不足以一次性存储C/S两端的通信内容时;
|
|
#else // 分配的缓冲区,不足以一次性存储C/S两端的通信内容时;
|
|
@@ -275,32 +280,27 @@ BOOL CPipeClient::WaitFinish(HANDLE hPipe, PER_IO_CONTEXT *pIoContext)
|
|
return TRUE;
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
|
|
-BOOL CPipeClient::SendMessage(PACKAGE &pak)
|
|
|
|
|
|
+BOOL CPipeClient::SendPackage(PACKAGE &pak)
|
|
{
|
|
{
|
|
- // 是否连接了服务端;
|
|
|
|
- if ( m_hPipeInst == INVALID_HANDLE_VALUE )
|
|
|
|
- return FALSE;
|
|
|
|
-
|
|
|
|
- // 是否初始化了句柄;
|
|
|
|
-
|
|
|
|
- return FALSE;
|
|
|
|
|
|
+ std::string data;
|
|
|
|
+ data.append((char*)&pak.header, sizeof(DATAHEADER));
|
|
|
|
+ //data.append((char*)(MSG_INFO*)pak.buf, sizeof(MSG_INFO));
|
|
|
|
+ data.append((char*)pak.buf, sizeof(MSG_INFO));
|
|
|
|
+ return SendData((LPBYTE)data.data(), data.size());
|
|
}
|
|
}
|
|
|
|
|
|
-BOOL CPipeClient::SendData(const TCHAR *lpszMsg, DWORD dwDataLen)
|
|
|
|
|
|
+BOOL CPipeClient::SendData(LPBYTE lpData, DWORD dwDataLen)
|
|
{
|
|
{
|
|
if ( m_hPipeInst == INVALID_HANDLE_VALUE )
|
|
if ( m_hPipeInst == INVALID_HANDLE_VALUE )
|
|
return FALSE;
|
|
return FALSE;
|
|
|
|
|
|
- static int i = 0;
|
|
|
|
|
|
+ if ( !lpData || dwDataLen == 0 )
|
|
|
|
+ return FALSE;
|
|
|
|
+
|
|
|
|
+ // 发送数据使用同步模式;
|
|
DWORD dwNumberOfBytesWritten = 0;
|
|
DWORD dwNumberOfBytesWritten = 0;
|
|
- char szMsg[255] = {0};//"你好----001";
|
|
|
|
- sprintf(szMsg, "发送内容00000000000000000000000000000000000000000000000000000000000000000000000000000000000000:%d,%d", ::GetCurrentProcessId(), i++);
|
|
|
|
- BOOL fWrite = WriteFile(m_hPipeInst,szMsg,strlen(szMsg),&dwNumberOfBytesWritten, NULL);//;&m_IoWrite.m_Overlapped);
|
|
|
|
- //WaitFinish(m_hPipeInst, &m_IoWrite);
|
|
|
|
- if ( fWrite )
|
|
|
|
- {
|
|
|
|
- Utility::dprintf(_T("SendData:%s\n"),szMsg);
|
|
|
|
- }
|
|
|
|
|
|
+ BOOL fWrite = WriteFile(m_hPipeInst, lpData, dwDataLen, &dwNumberOfBytesWritten, NULL);
|
|
|
|
+ Utility::dprintf(_T("SendData:Error=%ld, %s\n"), GetLastError(), lpData);
|
|
|
|
|
|
- return TRUE;
|
|
|
|
|
|
+ return fWrite;
|
|
}
|
|
}
|