Programadores dedicados a C sharp .Net, eres nuevo, experto o quieres aprender a programar en C Sharp, aquí encontraras todo lo que necesitas.
 
ÍndiceCalendarioFAQBuscarMiembrosGrupos de UsuariosChatRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Síguenos:
Crear foro Crear foro Crear foro

Comparte | 
 

 TCP/IP Cliente y Servidor

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Guillermo Javier Salazar
STAFF TEAM
STAFF TEAM


Mensajes : 181
Puntos : 349
Localización : México
Comentarios : El azar favorece a una mente preparada.

MensajeTema: TCP/IP Cliente y Servidor   Vie Mar 11, 2011 7:18 pm

TCP/IP Cliente y Servidor

hola amigos aqui va un pequeño tutorial de como hacer un par de programas que se comuniquen entre si en dos maquinas remotas o dentro de la misma maquina utilizando el protocolo TCP/IP aqui va el codigo del cliente:
_____________________________________________________________________
Código:
/*
* Creado por SharpDevelop.
* Usuario: HERNAN
*/
using System;
using System.IO;
using System.Text;
using System.Net.Sockets;


public class cliente
{

    public static void Main()
    {

        try
        {
            TcpClient Micliente = new TcpClient();//creamos una instancia de la clase TcpClien
            Console.WriteLine("Conectandose con el servidor...");
            Micliente.Connect("192.168.0.2", 1000);/*con la instancia creada nos conectamos al servidor colocando la ip de la
maquina en la que esta alojado y el puerto de comunicacion */
            Console.WriteLine("Conecxion exitosa \n");
            Console.Write("Ingrese Elmensaje a transmitir: ");
            String str = Console.ReadLine();//guardamos en la variable str el mensaje a transmitir
            Stream stm = Micliente.GetStream();//creamos el stream que se comunicara con el servidor
            ASCIIEncoding codificador = new ASCIIEncoding();//creamos una instancia de codificacion ascii
            byte[] mensaje = codificador.GetBytes(str);//codificamos y convertimos el mensaje a un byte array
            Console.WriteLine("Transmitiendo mensaje...");
            stm.Write(mensaje, 0, mensaje.Length);//enviamos el mensaje
            Console.WriteLine("Esperando Respuesta del servidor...");
            byte[] respuesta = new byte[100];//creamos un byte en el que almacenaremos las respuesta del servidor
            int k = stm.Read(respuesta, 0, 100);//se asigna a k la cantidad de bytes recibidos
            //ademas se guardan en respuesta los bytes recibidos y se pone como limite un maximo de 100 bytes   
            for (int i = 0; i < k; i++)
            {
                Console.Write(Convert.ToChar(respuesta[i]));//se escrioben uno a uno los bytes recibidos
            }
            Console.ReadLine();
            Micliente.Close();//cerramos la conexion
        }

        catch
        {
            Console.WriteLine("No se pudo establecer conexion con el servidor");
            Console.WriteLine("presione una tecla para salir....");
            Console.ReadKey();
        }
    }

}


ahora el codigo del servidor:
_____________________________________________________________________
Código:
/*
* Creado por SharpDevelop.
* Usuario: HERNAN
*/
using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Windows.Forms;
public class serv
{
    public static void Main()
    {
        try
        {
            String nombrehost = Dns.GetHostName();
            IPAddress ipAd = (Dns.GetHostEntry(nombrehost)).AddressList[2];//obtenemos la ip del equipo en el que esta el servidor
            TcpListener miescucha = new TcpListener(ipAd, 1000); //ip local y puerto por el que se comunica el servidopr
            miescucha.Start();//empezamos a escuchar el puerto especifico
            Console.WriteLine("Esperando conexion del cliente...");
            Socket s = miescucha.AcceptSocket(); //el servidor queda a la espera de una solicitud y la acepta
            Console.WriteLine("cliente conectado");
            byte[] b = new byte[200];//byte en el que guardamos los bytes recibidos
            int k = s.Receive(b);//le asignamos a b los bites recibidos y asignamos a k el valor de la cantidad de bytes recibidos
            Console.WriteLine("Recibido...");
            for (int i = 0; i < k; i++)
            {
                Console.Write(Convert.ToChar(b[i]));//escribimos los bytes recibidos en la consola
            }
            ASCIIEncoding codificador = new ASCIIEncoding();//creamos una instancia del codificacion ascii
            s.Send(codificador.GetBytes("Su mensaje fue recibido por el servidor\nPresione ua tecla para salir..."));
            //la anterior conviete una cadena en bytes, la codifica y luego se la envia al cliente
            Console.WriteLine("\n\nintercambio exitoso\nPresione ua tecla para salir...");
            s.Close();
            miescucha.Stop();//dejamos de escuchar el puerto
            Console.ReadKey();
        }
        catch (Exception e)
        {
            MessageBox.Show("El cliente se ha desconectado abruptamente!!!");
            Console.Write("Error producido" + e.StackTrace + "\n\nPresione ua tecla para salir...");
            Console.ReadKey();
        }
    }
}

descarga el codigo fuente en:

DESCARGAR

Creado por: Hernan Sanabria en el grupo de facebook, gracias por tu colaboración.
Volver arriba Ir abajo
Ver perfil de usuario http://cspromex.activo.mx
 
TCP/IP Cliente y Servidor
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» Cliente y cuenta de correo (Gmail, uso de gestor de correo integrado, problemas...)
» Transferir a mi servidor dedicado
» se ha caido el servidor ?¿?
» ¿Como puedo solicitar la base de datos de mi foro o acceso al servidor donde se aloja el dominio de pago?
» Como subir un servidor TS2 al foro-

Permisos de este foro:No puedes responder a temas en este foro.
CSPromex :: PROGRAMACIÓN EN C# :: Código abierto-
Cambiar a: