Professional Documents
Culture Documents
cs 1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Threading;
public class NetworkServer
{
public static void Main()
{
//creamos un thread para que el server
//se ejecute en paralelo con el cliente
//esto es solo por motivos prácticos del demo
new Thread(new ThreadStart(
delegate
{
new NetworkServer().Start();
}
)).Start();
//Iniciamos el Cliente
new Client().Connect();
Console.WriteLine("Listo");
Console.Read();
}
public void Start()
{
// Creamos un TcpListener y le indicamos que
//puerto va a poner en escucha.
TcpListener tcpListener = new TcpListener(9898);
//Iniciamos la esucha
tcpListener.Start();
//Este método queda bloqueado hasta que
//se conecte un cliente
Socket socketForClient = tcpListener.AcceptSocket();
if (socketForClient.Connected)
{
// Si se conecta
Console.WriteLine("Cliente conectado.");
//Creamos el networkSream, el Reader y el writer
NetworkStream networkStream = new NetworkStream(socketForClient);
C:\Users\Sailey\Documents\Visual Studio 2013\Projects\ConsoleApplication4\ConsoleApplication4\Program.cs 2
StreamWriter streamWriter = new StreamWriter(networkStream);
StreamReader streamReader = new StreamReader(networkStream);
//Esta es la data a enviar.
string theString = "Esta es la data de envio";
try
{
//Escribimos la data en el stream
streamWriter.WriteLine(theString);
//Ahora le decimos que la mande.
streamWriter.Flush();
//Esperamos data del cliente
//Y la escribimos por consola.
theString = streamReader.ReadLine();
Console.WriteLine(theString);
}
finally
{
//Cerramos las conexiones
streamReader.Close();
streamWriter.Close();
networkStream.Close();
socketForClient.Close();
}
}
}
public class Client
{
public void Connect()
{
TcpClient socketForServer;
string server = "localhost";
try
{
//Creamos un TcpCliente y le pasamos
//el server y el puerto.
socketForServer = new TcpClient(server, 9898);
C:\Users\Sailey\Documents\Visual Studio 2013\Projects\ConsoleApplication4\ConsoleApplication4\Program.cs 3
}
catch
{
Console.WriteLine(
"No se pudo conectar a {0}:9898", server);
return;
}
//aqui es lo mismo que en el server. Usamos StreamWriter y Reader.
NetworkStream networkStream = socketForServer.GetStream();
StreamReader streamReader =
new System.IO.StreamReader(networkStream);
StreamWriter streamWriter =
new System.IO.StreamWriter(networkStream);
try
{
string outputString = streamReader.ReadLine();
Console.WriteLine(outputString);
streamWriter.WriteLine("Mensaje desde el Cliente");
streamWriter.Flush();
}
catch
{
Console.WriteLine("Exception reading from Server");
}
finally
{
networkStream.Close();
}
}