Inicio arrow Noticias arrow Noticias - Programación arrow Cliente de Sockets en Java
Advertisement
Destacamos

He rescatado del anterior CMS , mis artículos sobre certificados digitales con OpenSSL.


CONTRATAME!

Ahora desde shadowsland puede contratar mis servicios como programador freelance.

Si desea un presupuesto puede pulsar la opción Presupuesto del menú principal, rellene los datos y me pondré en contacto con usted. 

 
Cliente de Sockets en Java PDF Imprimir E-Mail
Escrito por Administrator   
Tuesday, 03 de July de 2007

Image 

Mis ilustres shadowslanders,

 

Se que hace tiempo que no escribo, el tema es que estoy en obras en casa. Ahora mismo estoy sentado encima de dos ladrillos  y tengo  un apaño tipo mcgiver para disponer de ADSL. Burla 

Bueno el tema es que prometí exponer el código Java de un cliente de sockets para el servidor del artículo pasado y aquí lo tenéis. Ya veréis que es bastante simple.

 

Espero que os guste,

El Capi, 

 

 

import java.io.*;
import java.net.*;

public class socket_cliente {
    public static void main(String[] args) {
      final String servidor="127.0.0.1";
      final int puerto=1323;
      try{
        Socket socket= new Socket (servidor,puerto);
        //conseguimos el canal de entrada
        BufferedReader entrada = new BufferedReader (new InputStreamReader(socket.getInputStream()));
        //conseguimos el canal de salida
        PrintWriter salida=new PrintWriter(new OutputStreamWriter(socket.getOutputStream()),true);
            salida.println("Hola servidor");
                salida.println("respuesta");
                //recibimos la respuesta del servidor    
                  System.out.println(entrada.readLine());
        socket.close();
      } catch (UnknownHostException e){
          e.printStackTrace();
          System.out.println("Debes estar conectado para que esto funcione bien");
      } catch (IOException e)
      {
          e.printStackTrace();
      }
      
    }
}

 

El String servidor , contiene la ip en la cual está situado nuestro servidor de sockets. Y el string puerto es el puerto  por el cual está escuchando nuestro servidor.

Pues bien el truco consiste en crear una instancia  de la clase Socket pasandole por parámetro el servidor y el puerto.  Una vez ejecutada esta línea ya tendréis abierta la conexión , entre el cliente y el servidor:

                    Socket socket= new Socket (servidor,puerto);

Una vez tenemos el socket abierto abrimos un canal de lectura para poder leer lo que nos manda el servidor de sockets:

                   BufferedReader entrada = new BufferedReader (new InputStreamReader(socket.getInputStream()));

Y también necesitaremos un canal de escritura para poderle enviarle mensajes al servidor de sockets:

                 PrintWriter salida=new PrintWriter(new OutputStreamWriter(socket.getOutputStream()),true);

Ahora le enviamos los siguientes mensajes al servidor de socket:

                 salida.println("Hola servidor");
                 salida.println("respuesta");

El primero le envia "Hola servidor" el segundo le envía "respuesta" al enviar la palabra "respuesta" el servidor de sockets nos contestará con otro mensaje. Esto no es así porque sí. Si os mirais el código del servidor de sockets veréis que fue programado para ello. Por tanto capturamos la respuesta del servidor de sockets y la mostramos en pantalla

                  System.out.println(entrada.readLine());

 Finalmente cerramos la conexión: 

                  socket.close();

Veis lo fácil que es ? :) 

Comentario[s]
Escrito por Invitado el 2007-07-24 15:50:54
La verdad... 
No podrías haberlo hecho más fácil... 
 
Felicitaciones!! 
... y gracias!!! :grin
Escrito por Invitado el 2007-08-30 21:58:12
estuvo mas o menos nada que no puedas encontrar en otra pagina
Ayuda!!
Escrito por Invitado el 2007-09-20 17:29:00
Amigo, por favor, necesito ayuda, debo hacer un cliente en windows, para un servidor telnet linux, al momento de hacer el readLine(), muere, creo q es por la forma de comunicarse entre las plataformas diferentes. 
Gracias Esta dirección de correo electrónico está protegida contra los robots de spam, necesita tener Javascript activado para poder verla
buscar servidor
Escrito por Invitado el 2007-10-01 03:45:26
como se podría abordar el problema de tener varios servidores de sockets que implementan la misma interfaz, para que el cliente sin tener la ip busque el mejor servidor
Re: buscar servidor
Escrito por admin el 2007-10-05 09:50:37
Yo lo que haria es utilizar el firewall iptables para hacer el balanceo de carga. 
Entonces lo unico que tendrias que hacer es que los los clientes de socket apunten a un servidor que unicamente tiene iptables. Y este intercepta la conexion y la reenvia a la maquina correspondiente donde estara uno de los servidores de sockets. 
Para hacer esto mirate la opcion DNAT y TO_DESTINATION del iptables y veras lo que te digo. 
Osea : 
Cliente 

Srv iptables con DNAT 

Srv1, Srv2, Srv3 
 
Donde Srv iptables es el servidor con las iptables. 
El Cliente es la maquina con el programa cliente de sockets. 
Y Srv1 , Srv2 , Srv3 son las maquinas con los servidores sockets que deberan atender a las posibles peticiones que los clientes de sockets envian. 
Observa que el que te gestiona el balanceo de carga es el firewall. ;)  
 
Saludos, 
El Capi.
Escrito por Invitado el 2009-07-15 07:56:35
:p

Escribe tu comentario
Nombre:Invitado
Título:
BBCode:Web AddressEmail AddressBold TextItalic TextUnderlined TextQuoteCodeOpen ListList ItemClose List
Comentario:



Powered by AkoComment 2.0!

Modificado el ( Wednesday, 04 de July de 2007 )
 
< Anterior   Siguiente >
Patrocinados
home contact search contact search