2011-10-20 44 views
2

NamedPipeServerStream類時有什麼錯誤我是一個爲每個傳入連接,我需要創建新的對象,然後調用它的方法WaitForConnectionNamedPipeServerStream併爲waitForConnection方法

我想要做的就是在一個while循環調用上述方法來創建一個NamedPipeServerStream對象,然後反反覆覆,這樣的:

NamedPipeServerStream s2; 
using (s2 = new NamedPipeServerStream("pipe_name", PipeDirection.InOut)) { 
    while(true) { 
     ss2.WaitForConnection(); 
     //do something here 
    } 
} 

但是當我這樣做,我得到消息

流已斷開連接。

有什麼建議?

回答

5

如果你想使用你需要的編程模型,它給你,這是喜歡它是因爲它包裹了一個基本的Windows處理命名管道內核對象工作的NamedPipeServerStream。你不能像你想要的那樣使用它,因爲這不是命名管道處理的工作方式。

如果你真的想對付連接一處,一時間在單個線程,把你的循環內而外:

while (true) 
{ 
    using (NamedPipeServerStream ss2 = new NamedPipeServerStream("pipe_name", PipeDirection.InOut) 
    { 
    ss2.WaitForConnection(); 
    // Stuff here 
    } 
} 

更有可能的是,你要一個多線程管道服務器負責處理並行連接。如果是這樣,有不同的方式 - 一個搜索的其他SO問題將轉了幾個模式,例如herehere

相關問題