jueves, 25 de febrero de 2016

TCPSocket

/*TCP_Cleinte
namespace ClientePrueba
{
    public partial class Form1 : Form
    {
        byte[] datosTx = new byte[2048];
        string mensaje;
        Socket socketCliente = new Socket(AddressFamily.InterNetwork,
            SocketType.Stream, ProtocolType.Tcp);

        public Form1()
        {
            InitializeComponent();
        }

        private void btnConectar_Click(object sender, EventArgs e)
        {
            socketCliente.Connect(txtDireccion.Text, Convert.ToInt16(txtPuerto.Text));

            try
            {
                mensaje = "$Conectado";
                datosTx = System.Text.Encoding.ASCII.GetBytes(mensaje);

                socketCliente.Send(datosTx,
                    System.Text.Encoding.ASCII.GetByteCount(mensaje),
                    SocketFlags.None);

                int cuenta = socketCliente.Receive(datosTx);
                mensaje = System.Text.Encoding.ASCII.GetString(datosTx, 0, cuenta);
                Console.WriteLine(mensaje);

                txtServidor.Text = mensaje;
            }
            catch (SocketException Error)
            {
                MessageBox.Show("Excepcion" + Error.Message);
            }
        }


        private void btnHello_Click(object sender, EventArgs e)
        {
            mensaje = "$Hello$" + txtNombre.Text;
            datosTx = System.Text.Encoding.ASCII.GetBytes(mensaje);
            socketCliente.Send(datosTx,
                System.Text.Encoding.ASCII.GetByteCount(mensaje),
                SocketFlags.None);
            datosTx = new byte[1024];
            int cuenta = socketCliente.Receive(datosTx);

            mensaje = System.Text.Encoding.ASCII.GetString(datosTx, 0, cuenta);
            string[] cadena = mensaje.Split('$');
            txtServidor.Text = cadena[2];

        }

        private void btnEcho_Click(object sender, EventArgs e)
        {
            mensaje = "$Echo$" + txtRepetir.Text;
            datosTx = System.Text.Encoding.ASCII.GetBytes(mensaje);
            socketCliente.Send(datosTx,
                System.Text.Encoding.ASCII.GetByteCount(mensaje),
                SocketFlags.None);
            datosTx = new byte[1024];
            int cuenta = socketCliente.Receive(datosTx);

            mensaje = System.Text.Encoding.ASCII.GetString(datosTx, 0, cuenta);
            string[] cadena = mensaje.Split('$');
            txtServidor.Text = cadena[2];
        }

        private void btnDate_Click(object sender, EventArgs e)
        {
            mensaje = "$Date";
            datosTx = System.Text.Encoding.ASCII.GetBytes(mensaje);
            socketCliente.Send(datosTx,
                System.Text.Encoding.ASCII.GetByteCount(mensaje),
                SocketFlags.None);
            datosTx = new byte[1024];
            int cuenta = socketCliente.Receive(datosTx);

            mensaje = System.Text.Encoding.ASCII.GetString(datosTx, 0, cuenta);
            string[] cadena = mensaje.Split('$');
            txtServidor.Text = cadena[2];
        }

        private void btnRandom_Click(object sender, EventArgs e)
        {
            mensaje = "$Random";
            datosTx = System.Text.Encoding.ASCII.GetBytes(mensaje);
            socketCliente.Send(datosTx,
                System.Text.Encoding.ASCII.GetByteCount(mensaje),
                SocketFlags.None);
            datosTx = new byte[1024];
            int cuenta = socketCliente.Receive(datosTx);

            mensaje = System.Text.Encoding.ASCII.GetString(datosTx, 0, cuenta);
            string[] cadena = mensaje.Split('$');
            txtServidor.Text = cadena[2];
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            mensaje = "$Salir";
            datosTx = System.Text.Encoding.ASCII.GetBytes(mensaje);
            socketCliente.Send(datosTx,
                System.Text.Encoding.ASCII.GetByteCount(mensaje),
                SocketFlags.None);
            string [] cadena = mensaje.Split('$');

            txtServidor.Text = cadena[1];
            socketCliente.Close();
            Application.Exit();
        }
    }
}

*/
=======================================================================
/*TCP_Servidor
namespace ServidorPrueba
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("Uso del servidor...");
            byte[] bytes = new byte[1024];
            int cuenta;
            String data = " ";

            IPAddress direccionIP = IPAddress.Parse("127.0.0.1");

            IPEndPoint puntoFinal = new IPEndPoint(direccionIP, 12345);
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socket.Bind(puntoFinal);

            //-1 para q acepte una unica conexion.
            socket.Listen(-1);

            Socket manipuladorCliente = socket.Accept();
            Console.WriteLine("El servidor enlazó el socket...");
            try
            {
                do
                {
                    cuenta = manipuladorCliente.Receive(bytes);
                    data = System.Text.Encoding.ASCII.GetString(bytes, 0, cuenta);
                   
                    Console.WriteLine("Mensaje recibido: "+data);
                    string[] cadena = data.Split('$');
                    string respuesta = " ";

                    if (cadena[1] == "Conectado")
                    {
                        respuesta = "$Servidor";
                        Console.WriteLine("Respuesta del servidor: "+ respuesta);
                    }

                    else if (cadena[1] == "Hello")
                    {
                        respuesta = "$Hello$Bienvenido" + cadena[2];
                        Console.WriteLine("Respuesta del servidor: " + respuesta);
                    }

                    else if (cadena[1] == "Echo")
                    {
                        respuesta = "$Echo$" + cadena[2];
                        Console.WriteLine("Respuesta del servidor: " + respuesta);
                    }

                    else if (cadena[1] == "Date")
                    {
                        string dia = Convert.ToString(System.DateTime.Now.Day);
                        string mes = Convert.ToString(System.DateTime.Now.Month);
                        string anio = Convert.ToString(System.DateTime.Now.Year);

                        respuesta = "$Date$"+dia+"/"+mes+"/"+anio;
                        Console.WriteLine("Respuesta del servidor: " + respuesta);
                    }

                    else if (cadena[1] == "Random")
                    {
                        Random a = new Random();
                        int numero = Convert.ToInt16(a.Next(0, 101));
                        respuesta = "$Random$" + numero;
                        Console.WriteLine("Respuesta del servidor: " + respuesta);
                    }

                    //Proceso de los mensajes

                    bytes = System.Text.Encoding.ASCII.GetBytes(respuesta);
                    manipuladorCliente.Send(bytes,
                        System.Text.Encoding.ASCII.GetByteCount(respuesta),
                        SocketFlags.None);

                } while (data != "$Exit");

                //Console.WriteLine("Conexion finalizada");
                //manipuladorCliente.Shutdown(SocketShutdown.Both);
                //manipuladorCliente.Close();
            }
            catch(Exception ex)
            {
                Console.WriteLine("Excepcion" + ex.Message);
            }
        }
    }
}
*/

No hay comentarios:

Publicar un comentario