|
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. 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 ? :) |
Escrito por Invitado el 2007-07-24 15:50:54 La verdad... No podrías haberlo hecho más fácil... Felicitaciones!! ... y gracias!!! | 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 |
Powered by AkoComment 2.0! |