Java – Un resumen organizado….o no.

Llevo escribiendo artículos sobre Java, programación  de Java, entorno de Java… demasiado tiempo, y como ahora estoy preparando un curso de dicho tema, se me ha ocurrido hacer una especie de indice de lo que llevo publicado para que tanto vosotros como yo, podamos acudir a un tema concreto. Esto también me ha permitido detectar duplicados y faltas, por lo que deberé seguir ampliando la colección…. en cuanto pueda, incluso darle formato de libro…..ya veremos; de momento os dejo este indice Sigue leyendo

Publicado en Formacion, Java | Deja un comentario

PHP – Presentacion del curso

Mucho tiempo ha pasado desde que en 1994 se le ocurrió a Rasmus Lerdof “inventar” un lenguaje para la creación de sitios webs dinámicos, y como era una especie de pequeña herramienta para construir HTML, lo llamo PHP (PHP Hipertext preprocesor), y supongo que no llego a pensar en la importancia que tendria unos años mas tarde ese lenguaje. Pero aquí estamos, y hoy nos costaría mucho imaginarnos la web sin su existencia. Cierto es que hay otros lenguajes de servidor, pero PHP es el mas barato y, hoy por hoy el mas extendido, de forma que vamos a ver como se escribe un programa en él. Sigue leyendo

Publicado en Desarrollo Web, PHP y MySQL/MariaDB | 2 comentarios

Tu máquina de desarrollo. Instalando LAMP

Días atrás, os explicaba como instalar un servidor web en vuestra maquina de desarrollo bajo windows. Como poco a poco Linux penetra en nuestro mundo, hoy os comento como instalar un servidor web en vuestra maquina Linux: LAMP. Sigue leyendo

Publicado en Desarrollo Web, Linux | Etiquetado , , , , , | 1 comentario

HTML5 – Presentacion

Desde 1998 en que finaliza el desarrollo de HTML (4.0) han venido sucediéndose una serie de operaciones para establecer un nuevo estándar web. El XML primero, y su consecuente XHTML fue una buena apuesta, pero su posible sucesor el XHTML 2.0, cuyo desarrollo se abandona a finales del 2009, fue un fracaso. Eso obliga al W3C a buscar un nuevo camino, y lo encuentra retomando un trabajo iniciado por WHATWG  (Mozilla, Opera, Apple, Google…) sobre 2004 como variante a la linea de W3C.

Con todo ello, se anuncia en 2012 la recomendación candidata de Html5 y se prevee para 2020 la recomendación final.

En el curso que empezamos hoy, vamos a explicar que es HTML5HTML5_logo_and_wordmark.svg Sigue leyendo

Publicado en HTML5 | Etiquetado , | 1 comentario

Monta tu propio WordPress….y gratis

Si estáis decididos a probar suerte como webmaster con todas sus consecuencias, os invito a que probeis a instalar un wordpress en tu propio servidor. WordPress es gratuito, luego, si eso lo combinamos con un hosting gratuito…tendremos una interesante plataforma para aprender. Sigue leyendo

Publicado en Desarrollo Web, Divulgacion, Empezando en, WordPress | 3 comentarios

Macros de Excel

Con éste artículo, iniciamos una colección dedicada a la utilización de las hojas de cálculo de Microsoft Excel, y, más concretamente, a la forma que tiene este producto de solucionar y simplificar las tareas repetitivas. Debido a que estos artículos los voy escribiendo a medida que me surge la necesidad, he empezado por una parte de la formación Excel, bastante avanzada, sin embargo, y debido que su aprendizaje tiene mucho mas que ver con la programación que con Excel, pienso que se puede aprender de forma paralela a cualquier otro curso de Excel medio, y ya dejo claro que me comprometo a escribirlo… algún día. Que sea mas pronto o mas tarde, dependerá del trabajo, y de las necesidades de los lectores.

Sigue leyendo

Publicado en Excel, Formacion | Etiquetado , , | Deja un comentario

Java para programadores (9.3) – Los componentes gráficos

Toda ventana la implementaremos con JFrame o con JDialog

Para que una ventana sea funcional deberemos añadir los componentes que necesitemos, y eso lo hemos de hacer en contenedor que incorporan. Sigue leyendo

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Java para programadores (9.2) – Empezamos con JFrame

El contenedor de mayor nivel en Swing es JFrame (en AWT seria Frame)

Sigue leyendo

Publicado en Formacion, Java | Etiquetado | Deja un comentario

Java para programadores (9.1) – El paquete javax.swing

El primer paquete de que dispone java para las interfaces graficas es  java.awt (Abstract Window Toolkit). AWT es una librería portable para aplicaciones y/o applets. Provee la conexión entre la aplicación y el sistema de ventanas nativo. Los componentes AWT dependen de componentes  en código nativo (llamados peers) para manejar su funcionalidad, por lo que frecuentemente son llamados componentes “heavyweigth”. Sigue leyendo

Publicado en Formacion, Java | Etiquetado | Deja un comentario

Java para programadores (11). Comunicaciones

Unos de los principios que tuvieron en cuenta al definir Java, era que tenía que ser capaz de comunicarse con otros ordenadores, en este apartado revisaremos cómo podemos hacer que dos procesos intercambien información por medio de puertos de comunicación.

Durante este trabajo, consideraremos, básicamente,el trabajo con sockets, dejando un último capítulo para entender como podemos gestionar las comunicaciones a través de la Red, con direcciones IP y puertos.

Ejercicio. Pequeño chat

Publicado en Formacion, Java | Etiquetado , , , | Deja un comentario

Ejercicio java. Comunicaciones. Pequeño chat

Realizar un Chat simple, con un servidor y un cliente, cada uno de ellos puede recibir datos por la consola del sistema y se los envía al otro. El programa termina cuando en cualquiera de las dos consolas, se teclea “q”.

Para no complicar el proceso, solo aceptaremos que cada máquina conteste después que la otra máquina haya contestado, esto es: cada proceso solo enviara un mensaje y se quedará esperando la respuesta.

Solucion.

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Java para programadores (11.5). Comunicaciones . InetAddress

Así como la clase URL representaba una url, la clase InetAddress representa una dirección IP, y dispone de los métodos necesarios para conseguir información de la IP Sigue leyendo

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Java para programadores (11.4). Comunicaciones web con HttpURLConnection

Para poder acceder a un recurso remoto a través de internet deberemos utilizar sockets. Pero para ello, debemos de disponer de una IP o un nombre de dominio, debemos montar la URL y sus parámetros de una forma correcta, debemos eliminar los caracteres especiales (empezando por el espacio), controlar los headers, …. Sigue leyendo

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Java para programadores (11.3). Comunicaciones. Sockets de servidor

Para establecer conexión entre dos procesos, deberemos hacer que uno de los participantes inicie el proceso en modo “escucha”, y será al que denominaremos ”Servidor”. La clase ServerSocket, nos permite implementar esta modalidad

Para iniciar la escucha en un puerto deberemos hacer:

El proceso queda parado en el accept() hasta que alguien se conecte, o se produzca un error de timeout. Si lo sucedido es que alguien se ha conectado, en clientSocket tenemos un socket que está unido al cliente, por lo que podremos dar órdenes de lectura y/o escritura a través del mismo

Para entender un poco más estos objetos, vamos a realizar un ejercicio con una clase cliente y otra servidor.

La clase servidor TCP

Primero programaremos el servidor, su funcionalidad será muy sencilla, cuando alguien se conecte, nos informará, recogerá lo que se envíe  y lo imprimirá; a continuación, cerrara la conexión

La clase se llamara ServidorTCPSimple, y empezamos definiendo los literales y las variables que vamos a utilizar

Tenemos el saludo que presentaremos en la consola, el puerto en el que vamos a escuchar, y el tiempo que permaneceremos escuchando. Cuando venza el tiempo de TIMEOUT sin que se haya recibido nada, se generara una excepción.

A continuación, abrimos un socket de servidor y establecemos el TIMEOUT

Como hemos decidido que si no se conecta nadie en esos 10 segundos, queremos seguir esperando,  programaremos dentro de un bucle while(true), del que solo podremos salir por break. El código puede ser:

Notas:

Empezamos comunicando que estamos listos en línea 30

En línea 31 hacemos el accept() con lo que nuestra clase se quedará parada hasta que pase el TIMEOUT, o alguien se conecte, por TIMEOUT, iremos al mensaje de la línea 41 y volveremos a principio de bucle (línea 30)

El accept, nos ha proporcionado un nuevo socket conectado al cliente.

En 32, presentamos datos del cliente conectado

En 33, conseguimos un DataInputStream conectado al cliente, que leemos (in.readUTF) y lo imprimimos en 34

Para poder escribir en el cliente, necesitamos un DataOutputStream que conseguimos en la 35 y en la 36, podemos enviarle un saludo.

Al finalizar, cerramos el servidor, y hacemos break para salir del bucle y cerrar el programa

La clase cliente TCP

La clase cliente (ClienteTCPSimple) tiene que abrir un socket sobre la dirección y puerto del servidor, enviar un mensaje, escuchar la respuesta, imprimirla y finalizar…sencillo

Como siempre empezamos definiendo los literales, que serán el puerto, el mismo de antes (6000), y la dirección del socket remoto; como es en la misma máquina, podemos utilizar la palabra “localhost” que se refiere a la dirección 127.0.0.1 y es un loopback de la tarjeta de red

Como solo vamos a enviar un mensaje y recibir la respuesta, no necesitamos ningún bucle, solo

Conectamos con el servidor

Conseguimos un DataOutputStream, e imprimimos el mensaje en él

A continuación, conseguimos un DataInputStream para recibir cualquier mensaje que transmitan, lo leemos, y lo imprimimos en la consola

Ahora ya podemos cerrar el cliente

 

Si se han añadido los try-catch necesarios, se puede probar, para ello, se lanza primero el servidor, y a continuación el cliente; en la consola debe aparecer algo como:

La experiencia puede ser más interesante si se realiza desde dos ventanas del S.O.

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Java para programadores (11.2). Comunicaciones. Los sockets

Los sockets son un mecanismo que nos permite establecer un enlace entre dos programas que se ejecutan independientes el uno del otro Sigue leyendo

Publicado en Formacion, Java | Etiquetado | Deja un comentario

Java para programadores (11.1). Fundamentos de comunicaciones

La programación en red se refiere a un desarrollo que implica distintos procesos corriendo en uno o en varios ordenadores y que leen y escriben información en stream que los interconecta. Sigue leyendo

Publicado en Formacion, Java | Etiquetado , , , | Deja un comentario