Domanda

Sto testando un'applicazione che utilizza la porta COM.L'applicazione è in esecuzione in Virtual PC.Ho configurato le impostazioni di Virtual PC per utilizzare la named pipe \. \ Pipe \ mypipe per la porta COM1.

Ora sto cercando di comunicare con questa named pipe usando C #.

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

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

Il programma è in attesa in WaitForConnection () anche se Virtual PC è in esecuzione e sto cercando di comunicare con la porta COM.

Ho anche provato quanto segue, perché non sono sicuro di dover creare la named pipe nel mio programma o se la named pipe è stata creata da Virtual PC.

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

p.Connect();

Cosa sto facendo di sbagliato qui?

È stato utile?

Soluzione

Quando si configura Virtual PC per utilizzare una named pipe come porta COM, allora funge da server (se fosse il client, VPC dovrebbe continuamente eseguire il polling per un nuovo server se, ad esempio, il server si blocca).

/ p>

Il tuo secondo approccio è quasi azzeccato, tranne per il fatto che dovresti usare "mypipe" come nome del pipe piuttosto che "pipe \ mypipe".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top