domingo, 29 de enero de 2012

Tutorial Java 8 - Sockets

En este capítulo intentaré mostrar el uso de sockets con un programa muy sencillo pero a la vez muy...cutre, podría escribirlo más bonito pero no más claro:

Clase servidor.java:

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

public class servidor {

public static void main(String[] args) throws IOException { /*mejor con try & catch */
ServerSocket puerto = null; //inicializamos
Socket canal = null;
InputStream buffer_in; /* creamos un buffer de datos para el canal de entrada*/
DataInputStream contenedor_flujo; /*creamos un sitio donde guardar el contenedor que nos envian, aviso según el eclipse de esta forma es no necesariamente seguro para acceso multithread*/
puerto = new ServerSocket(11000);  /*por donde recibimos los datos*/
canal = puerto.accept();/*escucha conexiones en ese puerto y las acepta*/
buffer_in = canal.getInputStream();/*trae un flujo de datos desde nuestro socket*/
contenedor_flujo = new DataInputStream(buffer_in); /*guardamos ese flujo de datos en el contenedor*/
String string = new String(contenedor_flujo.readUTF());/*obtiene cadena de la información del contenedor que está codificada en UTF-8 modificado*/
System.out.print(string); /*imprimimos la cadena*/
contenedor_flujo.close();/*cerramos el contenedor*/
buffer_in.close();/*cerramos el buffer*/
canal.close();/*cerramos el canal*/
}
}


Clase cliente.java (como veis es similar en muchos aspectos) :

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


public class cliente {

public static void main(String[] args) throws IOException {
Socket canal = null;
OutputStream buffer_out;
DataOutputStream contenedor;
canal = new Socket("127.0.0.1", 11000);/*indicamos a que ip y puerto enviamos,en este caso la ip localhost(nuestro equipo)*/
buffer_out = canal.getOutputStream();
contenedor = new DataOutputStream(buffer_out);
String info_a_enviar = "Enviamos información\n";
contenedor.writeUTF(info_a_enviar);/*escribe la información en UTF-8 modificado*/
contenedor.close();
buffer_out.close();
canal.close();
}
}

No hay comentarios:

Publicar un comentario