我正在尝试在 Windows 中创建一个带有命名管道的基本服务器。尝试连接管道时会出现问题(我怀疑)。
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main(){
HANDLE p1, p2;
printf("Server...");
p1 = CreateNamedPipe(TEXT("\\\\.\\PIPE\\pipe1"),PIPE_ACCESS_INBOUND,PIPE_TYPE_BYTE|PIPE_WAIT,3,0,0,0,NULL);
p2 = CreateNamedPipe(TEXT("\\\\.\\PIPE\\pipe2"),PIPE_ACCESS_OUTBOUND,PIPE_TYPE_BYTE|PIPE_WAIT,3,0,0,0,NULL);
if(p1 == INVALID_HANDLE_VALUE || p2 == INVALID_HANDLE_VALUE ) { printf("pipe fail");exit(2);}
printf("1. Pipes created");
ConnectNamedPipe(p1,NULL);
ConnectNamedPipe(p2,NULL);
printf("2. Pipes connected");
DisconnectNamedPipe(p1);
DisconnectNamedPipe(p2);
CloseHandle(p1);
CloseHandle(p2);
printf("3. Pipes disconnected & closed");
printf("exit server...");
return 0;
}
运行程序时,它不会打印任何内容,当我手动停止它时,它只会打印
Server...1. Pipes created
(在我的 IDE 控制台 - Eclipse 中),或者如果我直接运行程序,它会打印相同的内容然后保持不变。