Advertisement
Fhernd

ServidorClienteNamedPipe.cs

Jul 26th, 2015
21,703
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.07 KB | None | 0 0
  1. // OrtizOL - xCSw - http://ortizol.blogspot.com
  2.  
  3. using System;
  4. using System.IO;
  5. using System.IO.Pipes;
  6.  
  7. namespace Receta.CSharp.R0526
  8. {
  9.     public class ServidorClienteNamedPipe
  10.     {
  11.         public static void Main(string[] args)
  12.         {
  13.             Console.WriteLine(Environment.NewLine);
  14.            
  15.             // Valida el modo de conexión (servidor o cliente):
  16.             if (args.Length > 0 && args[0] == "cliente")
  17.             {
  18.                 IniciarClientePipe();
  19.             }
  20.             else
  21.             {
  22.                 IniciarServidorPipe();
  23.             }
  24.            
  25.             Console.WriteLine(Environment.NewLine);
  26.         }
  27.        
  28.         private static void IniciarServidorPipe()
  29.         {
  30.             // Creación del servidor:
  31.             NamedPipeServerStream servidor = new NamedPipeServerStream("servidor");
  32.            
  33.             // A espera de conexiones:
  34.             Console.WriteLine ("Esperando una conexión...");
  35.             servidor.WaitForConnection();
  36.            
  37.             Console.WriteLine ("Conexión establecida con un cliente.");
  38.            
  39.             // Asocia un objeto StreamWriter y StreamReader con el servidor para
  40.             // envío y recepción de datos:
  41.             StreamReader sr = new StreamReader(servidor);
  42.             StreamWriter sw = new StreamWriter(servidor);
  43.            
  44.             // Envío de datos:
  45.             for(int i = 1; i <= 10; ++i)
  46.             {
  47.                 Console.WriteLine ("[SERVIDOR]> Enviando dato: {0}", i.ToString());
  48.                 sw.WriteLine("Dato: {0}", i.ToString());
  49.                 sw.Flush();
  50.             }        
  51.            
  52.             // Recepción de datos:
  53.             for (int i = 1; i <= 10; ++i)
  54.             {
  55.                 Console.WriteLine ("[SERVIDOR]> Dato recibido: {0}", sr.ReadLine());
  56.             }
  57.            
  58.             // Cierra el servidor:
  59.             servidor.Close();
  60.         }
  61.        
  62.         private static void IniciarClientePipe()
  63.         {
  64.             // Creación del cliente:
  65.             NamedPipeClientStream cliente = new NamedPipeClientStream("servidor");
  66.            
  67.             // Conexión con el servidor:
  68.             cliente.Connect();
  69.            
  70.             // Asocia un objeto StreamWriter y StreamReader con el cliente para
  71.             // envío y recepción de datos:
  72.             StreamReader sr = new StreamReader(cliente);
  73.             StreamWriter sw = new StreamWriter(cliente);
  74.            
  75.             // Recepción de datos:
  76.             for (int i = 1; i <= 10; ++i)
  77.             {
  78.                 Console.WriteLine ("[CLIENTE]> Dato recibido: {0}", sr.ReadLine());
  79.             }
  80.            
  81.             // Envío de datos:
  82.             for (int i = 1; i <= 10; ++i)
  83.             {
  84.                 Console.WriteLine ("[CLIENTE]> Enviando dato: {0}", i.ToString());
  85.                 sw.WriteLine("Dato: {0}", i.ToString());
  86.                 sw.Flush();
  87.             }
  88.            
  89.             // Cierre del cliente:
  90.             cliente.Close();
  91.         }
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement