我想知道如何处理通过命名管道(一个服务器和一个客户端)成功连接两个进程的情况,并突然(由于某种原因)服务器进程结束。
管子怎么了?它关闭了吗? 客户端发送到服务器的信息会发生什么变化?它迷路了吗? 客户端如何知道服务器是否已关闭?
All The Best,
吉尔
答案 0 :(得分:1)
例如,如果您使用System.IO.Pipes
和NamedPipeServerStream
,则在管道损坏或断开连接时会出现IOException。
当您使用NamedPipeClientStream
从服务器读取信息时,我相信客户端会等到NamedPipeClientStream.Connect()
呼叫替代方案建立连接,您可以使用NamedPipeClientStream.Connect(Int32)
选项来超时在预定时间段之后的连接。除此之外,StreamReader.ReadLine()
还能够在某些事情进展不顺时抛出IOException
。
NamedPipeClientStream.IsConnected
是确定客户端是否已成功连接到服务器,或者是否已断开,关闭或损坏的简单方法。