【发布时间】:2015-08-30 14:48:32
【问题描述】:
我有一个命名管道服务器。客户端发送消息,看起来没问题,但是服务器只是挂在var stringData = textReader.ReadToEnd(); 线上。
var namedPipeServerStream = new NamedPipeServerStream(_pipeName,
PipeDirection.In,
1,
PipeTransmissionMode.Byte,
PipeOptions.Asynchronous);
namedPipeServerStream.WaitForConnection();
using (var textReader = new StreamReader(namedPipeServerStream))
{
var stringData = textReader.ReadToEnd();
_callback(stringData);
namedPipeServerStream.Flush();
namedPipeServerStream.Close();
}
Thread.Sleep(1);
客户端是这样的:
public void Send(string message)
{
var pipeStream = new NamedPipeClientStream(_serverName,
_pipeName,
PipeDirection.Out,
PipeOptions.Asynchronous);
pipeStream.Connect(_timeout);
var buffer = UTF8.GetBytes(message);
pipeStream.Write(buffer, 0, buffer.Length);
}
为什么会挂起?
【问题讨论】:
标签: .net named-pipes