Estoy intentando implementar un servidor de canalizaciones con nombre en .NET. El cliente será C++. La naturaleza de los datos enviados no es relevante para la pregunta.Uso de tuberías con nombre. Múltiples clientes, un servidor, múltiples solicitudes paralelas
Mi primera implementación ingenua se ve algo como:
using (NamedPipeServerStream stream =
new NamedPipeServerStream(PipeName,
PipeDirection.InOut,
numberOfListeners,
PipeTransmissionMode.Message))
{
while (true)
{
try
{
stream.WaitForConnection();
var request = ReadRequest(stream);
var reply = Process(request);
WriteReply(stream, reply);
stream.WaitForPipeDrain();
}
catch (Exception ex)
{
//TO DO: log
}
}
}
¿estoy acercando a este derecho?
¿Qué pasaría si dos clientes abren una conexión al mismo tiempo?
¿Compartirán la misma corriente y se mezclarán los datos?
¿Cómo puedo evitar esto?
Cualquier idea o recurso sobre esto ayudará. Soy bastante nuevo en este tema.
+1 Gracias por el asesoramiento. Comienza a tener sentido ahora –
ya que nadie más ha respondido a esto y su respuesta es lo suficientemente buena para mí la aceptaré como la correcta. Gracias. Logré implementar mi servidor de la manera correcta. –