学习了一下多进程之间通信,记录一下:
#pragma once
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <Windows.h>
#include <string>
#include <memory>
#include "stdafx.h"
enum PIPEUSERTYPE{
USER_CLIENT, //客户端
USER_SERVER, //服务端
};
class PipeIPC{
public:
PipeIPC();
~PipeIPC();
bool InitPipeIPC(std::string pipe_name, PIPEUSERTYPE states); //初始化管道通信
//读写数据
bool WriteData(std::string datas); //写入数据
bool ReadData(std::string& datas, bool& isPipeEnd); //读取数据
private:
std::string m_pipe_name;
HANDLE m_hPipeHandle;
PIPEUSERTYPE m_state; //状态设置
};
#include "stdafx.h"
#include "PipeDemo.h"
using namespace std;
//实现
PipeIPC::PipeIPC()
{
m_pipe_name = ""; //设置空
m_hPipeHandle = nullptr;
m_state = USER_CLIENT; //默认为客户端
}
PipeIPC::~PipeIPC()
{
DisconnectNamedPipe(m_hPipeHandle);
CloseHandle(m_hPipeHandle);//关闭句柄
}
bool PipeIPC::InitPipeIPC(std::string pipe_name, PIPEUSERTYPE states)
{