我有Windows服务,它从TCP连接接收数据,然后通过命名管道立即将相同的数据发送到Web服务。任何人都可以建议我如何设置管道,以便我连接一次管道,然后使用相同的管道进行所有传入连接。
这是我在Windows服务上的代码的一部分:
pipeStream = new NamedPipeClientStream(".", pipename, PipeDirection.Out);
while (true)
{
byte[] data = new byte[100];
int recv = newTCP.Receive(data, ref tmpRemote);
try
{
pipeStream.Connect(3);
pipeStream.Write(data,0,recv);
}
答案 0 :(得分:0)
移动pipeStream.Connect(3);就在之前(真实); 所以现在你有了可以一遍又一遍地用来写的流。 现在,在每次写入之后,如果您想立即获取数据,请确保调用flush方法:
pipeStream = new NamedPipeClientStream(".", pipename, PipeDirection.Out);
pipeStrea.Connect(3);
while(true)
{
... // Get your TCP data
pipeStream.Write(data,0,recv);
pipeStream.Flush();