2011-02-05 148 views
1

我正在測試使用COM端口的應用程序。該應用程序在Virtual PC中運行。我已經設置了虛擬PC設置,以使用命名管道\。\ pipe \ mypipe作爲COM1-Port。與虛擬PC的COM端口通信

現在我正在嘗試使用C#與此命名管道進行通信。

using (var pipe = new NamedPipeServerStream(@"\\.\pipe\mypipe")) 
{ 
    pipe.WaitForConnection(); 

    using (var reader = new StreamReader(pipe)) 
    { 
     // Do some communication here 
    } 
} 

儘管Virtual PC正在運行,並且我正在嘗試與COM端口通信,但程序正在等待WaitForConnection()。

我也試過以下內容,因爲我不確定是否必須在我的程序中創建命名管道,或者命名管道是由Virtual PC創建的。

var p = new NamedPipeClientStream(@"pipe\mypipe"); 

p.Connect(); 

我在做什麼錯在這裏?

回答

2

當您將虛擬PC設置爲使用命名管道作爲COM端口時,它將作爲服務器(如果它是客戶端,則VPC將不得不連續輪詢新服務器(例如,如果服務器崩潰)。

你的第二種方法幾乎在標誌上,除了你應該使用「mypipe」作爲管道的名稱而不是「pipe \ mypipe」。

+0

謝謝!那樣做了。雖然溝通仍然無法正常工作。也許你也知道這裏的答案? http://stackoverflow.com/questions/4907079/com-port-communication-with-virtual-pc-part-2 – PetPaulsen 2011-02-05 13:24:11