NamedPipeServerStream和NamedPipeServerClient是.NET Framework中用于实现命名管道通信的类。命名管道是一种在同一台计算机上或不同计算机之间进行进程间通信的机制。
示例代码如下:
using System;
using System.IO;
using System.IO.Pipes;
class Program
{
static void Main()
{
using (NamedPipeServerStream pipeServer = new NamedPipeServerStream("testpipe", PipeDirection.InOut))
{
Console.WriteLine("等待客户端连接...");
pipeServer.WaitForConnection();
Console.WriteLine("客户端已连接。");
using (StreamReader reader = new StreamReader(pipeServer))
using (StreamWriter writer = new StreamWriter(pipeServer))
{
while (true)
{
string request = reader.ReadLine();
Console.WriteLine("接收到客户端请求: " + request);
string response = "服务器响应: " + request.ToUpper();
writer.WriteLine(response);
writer.Flush();
}
}
}
}
}
using System;
using System.IO;
using System.IO.Pipes;
class Program
{
static void Main()
{
using (NamedPipeClientStream pipeClient = new NamedPipeClientStream(".", "testpipe", PipeDirection.InOut))
{
Console.WriteLine("连接到服务器...");
pipeClient.Connect();
Console.WriteLine("已连接到服务器。");
using (StreamReader reader = new StreamReader(pipeClient))
using (StreamWriter writer = new StreamWriter(pipeClient))
{
while (true)
{
Console.Write("请输入要发送给服务器的消息: ");
string message = Console.ReadLine();
writer.WriteLine(message);
writer.Flush();
string response = reader.ReadLine();
Console.WriteLine("接收到服务器响应: " + response);
}
}
}
}
}
这个示例展示了一个简单的命名管道通信过程。服务端创建一个命名管道,并等待客户端连接。客户端连接到服务端后,可以发送消息给服务端,服务端接收到消息后将其转换为大写形式,并发送回客户端。
命名管道适用于同一台计算机上的进程间通信,可以用于实现各种场景,如进程间数据传输、进程间同步等。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云