Pregunta

Estoy probando una aplicación que usa el puerto COM.La aplicación se está ejecutando en Virtual PC.He configurado la configuración de Virtual PC para usar la tubería \. \ Pipe \ mypipe con nombre para el puerto COM1.

Ahora estoy tratando de comunicarme con esta tubería con nombre usando C #.

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

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

El programa está esperando en WaitForConnection () aunque Virtual PC se está ejecutando y estoy tratando de comunicarme con el puerto COM.

También intenté lo siguiente, porque no estoy seguro de si tengo que crear la tubería con nombre en mi programa o si la tubería con nombre la crea Virtual PC.

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

p.Connect();

¿Qué estoy haciendo mal aquí?

¿Fue útil?

Solución

Cuando configura Virtual PC para usar una tubería con nombre como puerto COM, entonces actúa como el servidor (si fuera el cliente, VPC tendría que sondear continuamente para un nuevo servidor si, por ejemplo, su servidor falla).

Su segundo enfoque está casi en la marca, excepto que debe usar "mypipe" como el nombre de la tubería en lugar de "pipe \ mypipe".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top