У меня проблема с подключением к процессу с использованием PipeConnection
Моя идея:
A - процесс A
B - процесс B
1. A (куча клиентов) хочет отправить сообщение B (труба серверу)
2. 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();
}