ConnectNamedPipe 関数を使用してパイプのインスタンスを作成するパイプ サーバーを作成しました。その後、パイプから読み取り、データをバッファに保存します。まだクライアントを作成していませんが、いくつかの操作を行う必要があります。
クライアントはパイプに 2 つのことを書き込む必要があります: 1 - サーバーが行う操作 - 減算、乗算、加算、除算 (一種の電卓を実装しようとしています)
私のサーバーは、パイプからこれらの操作と 2 つの数値を読み取り、結果を画面に出力する必要があります。
それで、私の質問は、クライアントが書いた 2 つの操作をどのように解析できるかということです。
サーバーは正常に動作していますが、解析に問題があります。
#include <iostream>
#include <Windows.h>
using namespace std;
int main()
{
HANDLE createPipe;
BOOL Connect;
BOOL Read;
int buffer[100];
DWORD numBytesRead;
//Create Pipe
createPipe = CreateNamedPipe(
L"\\\\.\\pipe\\StackOverflow",
PIPE_ACCESS_DUPLEX,
PIPE_TYPE_MESSAGE,
PIPE_UNLIMITED_INSTANCES,
1024,
1024,
NMPWAIT_USE_DEFAULT_WAIT,
NULL);
//Check for failure
if(createPipe == INVALID_HANDLE_VALUE){
cout<<"Failed to create a pipe! "<<endl;
}
//Create instance of the pipe
Connect = ConnectNamedPipe(
createPipe,
NULL);
//Check for failure
if(!(Connect)){
cout<<"Failed to connect to the pipe"<<endl;
CloseHandle(createPipe);
}
//Read bytes from the buffer
Read = ReadFile(
createPipe,
buffer,
99 * sizeof(buffer),
&numBytesRead,
NULL);
//check for failure
if(!(Read)){
cout<<"Failed to read from the pipe"<<endl;
CloseHandle(createPipe);
}
return 0;
}
どうも