Question

Je teste une application qui utilise le com-port. L'application s'exécute en PC virtuel. J'ai configuré les paramètres de PC virtuels pour utiliser le tuyau nommé . Pipe mypipe pour com1-port.

Maintenant, j'essaie de communiquer avec ce tuyau nommé en utilisant C #.

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

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

Le programme attend sur waitForConnection () bien que Virtual PC soit en cours d'exécution et j'essaie de communiquer avec le com-port.

J'ai également essayé ce qui suit, car je ne sais pas si je dois créer le tuyau nommé dans mon programme ou le tuyau nommé est créé par PC virtuel.

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

p.Connect();

Qu'est-ce que je fais de mal ici?

Était-ce utile?

La solution

Lorsque vous configurez Virtual PC pour utiliser un pipe nommé en tant que port com, il agit comme serveur (s'il s'agissait du client, alors VPC devrait interroger en continu pour un nouveau serveur si votre serveur s'est écrasé).

Votre deuxième approche est presque sur la marque, sauf que vous devez utiliser "mypipe" comme nom du tuyau plutôt que "Pipe mypipe".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top