Cuando Obama defendía la neutralidad en la red

(2 comentarios)

Leyendo Menéame me entero de que la Comisión Federal de Comunicaciones de Estados Unidos ha dado el primer paso para acabar con la neutralidad en la red. Yo por mi parte, todavía recuerdo cuando un Barack Obama en plena campaña presidencial juraba defenderla si alguna vez llegaba a presidente.

Sí, soy un gran defensor de la neutralidad en la red. (…) Algunos lobis dicen que los servidores y los portales a través de los que obtienes la información de Internet deberían poder actuar como guardianes y cobrar tasas distintas según la página web… de forma que podrías obtener mucha mejor calidad en el sitio de Fox News y tendrías un servicio desastroso en páginas modestas (…) Y creo que esto destruye una de las mejores cosas acerca de Internet, que es la increíble igualidad que hay en ella.

Doom en tu navegador

(10 comentarios)

Atrás quedaron los tiempos en los que JavaScript se consideraba un lenguaje de programación de juguete y lo más excitante que podía ofrecernos HTML era la perversa etiqueta blink.

Lo demostró Google el año pasado con su implementación de Quake II usando WebGL, por ejemplo, y lo vuelve a hacer hoy Mozilla compilando el código original de Doom a JavaScript para que podamos jugar en nuestro navegador.

[Pulsa para continuar]

Problemas Wi-Fi

(16 comentarios)

¿Tienes problemas con tu Wi-Fi? ¿la conexión es muy lenta o se corta cada poco tiempo? En PCPro han publicado un artículo bastante interesante que puede ayudarte a resolver algunos de estos problemas.

¿Sabías que enemigo número uno de las redes Wi-Fi son las interferencias? No solo de las redes próximas, que podemos minimizar seleccionando el canal menos utilizado según inSSIDer 2, sino también de otros aparatos, como microondas y viejas televisiones, o incluso por luces de navidad, espejos o peceras.

[Pulsa para continuar]

Los dominios .es cumplen 20 años

(1 comentario)

Los dominios .es cumplen 20 años, y lo hacen con muy buena salud, con más de un millón cien mil dominios registrados, decenas de agentes registradores acreditados, precios bastante razonables, y con el ESNIC, el registro delegado de Internet en España, haciendo, asombrosamente, un gran trabajo, para lo que nos tienen acostumbrados las administraciones públicas en España.

[Pulsa para continuar]

M-Lab, la respuesta de Google al capado P2P

(7 comentarios)

Leo en menéame que Google ha lanzado un nuevo sitio web en el que publicarán distintas herramientas dedicadas a diagnosticar nuestra conexión de forma sencilla. Este sitio, llamado M-Lab, es el resultado del esfuerzo de varias organizaciones académicas y ofrece, por ahora, tres aplicaciones distintas:

[Pulsa para continuar]

Sockets en Java

(27 comentarios)

En Java las comunicaciones se basan en sockets con los que trabajamos a través de flujos de datos como si de E/S de archivos se tratara. Los sockets se clasifican en sockets de flujo o sockets de datagramas dependiendo de si el servicio utiliza TCP (orientado a conexión y fiable) o UDP.

En el modelo de sockets de flujo contamos con un objeto de tipo Socket en el cliente y en el servidor uno o más objetos Socket asociados a un ServerSocket. La E/S se realiza a través de objetos InputStream y OutputStream asociados a los Sockets.

El servidor crea un socket servidor que tiene como parámetro el puerto en el que a va estar escuchando las peticiones entrantes:
ServerSocket servicio = new ServerSocket(9999);

accept se mantiene a la espera de conexiones entrantes, bloqueando la ejecución. Cuando se establece una conexión se devuelve una instancia de Socket con la que llevar a cabo la comunicación.
Socket socketServicio = servicio.accept();

Los clientes crean objetos Socket para comunicarse con el servidor, por ejemplo localhost en el puerto 9999:
Socket cliente = new Socket("localhost", 9999);

Una vez iniciada la conexión, podemos usar getOutputStream y getInputStream para obtener los flujos de salida y entrada de datos de los sockets.
PrintWriter salida = new PrintWriter(socketServicio.getOutputStream(), true);
BufferedReader entrada = new BufferedReader(new InputStreamReader(cliente.getInputStream()));

Y utilizar los métodos de los flujos de datos para enviar o recibir información del otro lado de la conexión:
salida.println("Soy el servidor");
System.out.println("Recibido " + entrada.readLine());

Por último, una vez terminada la ejecución, tenemos que cerrar los flujos de datos y el socket (en ese orden):
salida.close();
socketServicio.close();

entrada.close();
cliente.close();

Un ejemplo típico para enseñar estos conceptos en la práctica es un servidor eco, cuyo código podéis descargar a continuación. Para probarlo podeis utilizar telnet para conectaros al puerto 9999 en localhost (telnet localhost 9999) y por cada cadena de texto enviada al servidor, este nos responderá con el mismo texto. Utiliza el comando ‘bye’ para terminar la conexión.

Descarga ServidorEco.java