最简单的NamedPiep程序[秋镇菜]-初学者看看
一個完整的NamedPipe分為服務器和客戶端.服務器要先運行,客戶端才能正常運行.所以先寫服務器.
代碼如下:
// namedpipe01server.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>
const char* sPipeName = ".//pipe//HolgersTracer";
int main(int argc, char* argv[])
{
?HANDLE hPipe = CreateNamedPipe(sPipeName, PIPE_ACCESS_INBOUND, PIPE_TYPE_BYTE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, 0, 0, 200, NULL);
?if (!ConnectNamedPipe(hPipe, NULL))
??return 0;
?printf("Pipe created./r/n");
?DWORD nReaded = 0;
?char buffer[512];
?while (ReadFile(hPipe, buffer, sizeof(buffer)-1, &nReaded, NULL))
?{
??buffer[nReaded] = 0;
??printf(buffer);
??printf("/r/n");
?}
?printf("Press any key to continue/r/n");
?getch();
?return 0;
}
運行服務器后,接下來是寫客戶端.
代碼如下:
// namedpipe01.cpp : Defines the entry point for the console application.
//
#include <conio.h>
#include <windows.h>
#include <stdio.h>
char* sPipeName = ".//pipe//HolgersTracer";
char sbuf[8] = "1234567";
int main()
{
?HANDLE hPipe = NULL;
?hPipe = CreateFile(sPipeName, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
?if (hPipe == INVALID_HANDLE_VALUE)
?{
??printf("Error creating./r/n");
??return 0;
?}
?DWORD nWritten = 0;
?if (WriteFile(hPipe, (BYTE*)sbuf, 8, &nWritten, NULL) == FALSE)
?{
??printf("Error writing./r/n");
??return 0;
?}
?printf("Completed./r/n");
}
本人雖然從事開發多年,但對新技術很感興趣,如果有錯誤,敬請指出,萬分感激.
QQ:250947302
E-mail:cyin8@126.com
總結
以上是生活随笔為你收集整理的最简单的NamedPiep程序[秋镇菜]-初学者看看的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html判断是否有某个元素,JS基础篇-
- 下一篇: 2020 年 7 个软件开发趋势