Система. IO.Exception: Канал повреждается

Вот еще один хороший класс-обертка от Mr.Granoff https://github.com/granoff/Lockbox Спасибо

21
задан Marcus Mangelsdorf 13 February 2016 в 00:34
поделиться

1 ответ

Я отправлю свой код, который, кажется, работает - мне было любопытно, так как я никогда ничего не делал с трубами. Я не нашел класс, который вы назвали для серверной стороны в соответствующем пространстве имен, поэтому вот код, основанный на NamedPipeServerStream . Обратный вызов вызван тем, что меня не беспокоили два проекта.

NamedPipeServerStream s = new NamedPipeServerStream("p", PipeDirection.In);
Action<NamedPipeServerStream> a = callBack;
a.BeginInvoke(s, ar => { }, null);
...
private void callBack(NamedPipeServerStream pipe)
{
  while (true)
  {
    pipe.WaitForConnection();
    StreamReader sr = new StreamReader(pipe);
    Console.WriteLine(sr.ReadToEnd());
    pipe.Disconnect();
  }
}

И клиент делает следующее:

using (var pipe = new NamedPipeClientStream(".", "p", PipeDirection.Out))
using (var stream = new StreamWriter(pipe))
{
  pipe.Connect();
  stream.Write("Hello");
}

Я могу повторять вышеуказанный блок несколько раз при работающем сервере, без проблем.

20
ответ дан 29 November 2019 в 21:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: