我使用PipeConnection进行流程通信存在问题
我的想法是:
A - 处理A
B - 过程B
1.(堆客户端)想要向B(管道服务器)发送消息 B读取消息并断开连接。
2.1如果B需要回答 2.2 B(管道客户端)连接到A(堆栈服务器) 2.3 A读取消息和断开。
如果A向B发送消息并且imedlitley想要再次发送另一条消息,则会出现问题
代码示例:
//Server
static void Main(string[] args)
{
using (NamedPipeServerStream server = new NamedPipeServerStream("EOG", PipeDirection.In))
{
StreamReader sr = new StreamReader(server);
while (true)
{
server.WaitForConnection();
Console.WriteLine("Conected to client");
try
{
Console.WriteLine(sr.ReadLine());
server.Disconnect();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
sr.Dispose();
}
}
}
//Client
static void Main(string[] args)
{
using (NamedPipeClientStream client = new NamedPipeClientStream(".", "EOG", PipeDirection.Out))
{
StreamWriter sw = new StreamWriter(client);
while (true)
{
Console.WriteLine("Message: ");
sw.WriteLine(Console.ReadLine());
if (!client.IsConnected)
client.Connect();
sw.Flush();
}
sw.Dispose();
}
Console.ReadKey();
}