Cómo implementar un WebServer en un módem TC65 ó MTX65
Escrito por blogElectronica en 2.DISPOSITIVOS (práctico), 4.PROGRAMACIÓN, Comunic. GSM/GPRSBueno, ya estoy aquí de vuelta de vacaciones. Esta Semana Santa he pasado unos estupendos días en Cáceres con la familia (ahí reside gran parte de mi familia por parte de Madre). Hacia ya muchos años que no iba y ya echaba de menos el jamoncito, las torrijas, … a la familia . La verdad es que me lo he pasado muy bien y espero no tardar tanto tiempo en regresar.
Bueno, vamos a lo nuestro … hoy vamos a ver la implementación de un WebServer.
En ocasiones puede resultar interesante incorporar un pequeño web server en nuestros módems gprs TC65 ó MTX65. Resulta cómodo conectarse directamente al módem con un navegador y consultar algún parámetro. Pues bien, hoy os pongo un ejemplo que he hecho, algo más largo de lo habitual y que me llevó cierto tiempo en su día, y que implementa eso: un pequeño y simple (muy simple) WebServer. Sirva este ejemplo también como ejemplo de Socket Server. No recuerdo a qué usuario de este blog le dije que en breve pondría un ejemplo de Socket Server en java. Pues aquí está.
El ejemplo que os cuelgo aquí es una parte de uno de mis proyectos al cual le he quitado muchas cosas, entre ellas parte del control de errores, para que no sea tan extenso y sea más entendible. Creo que lo es bastante. De todas formas al quitar código es posible que haya alguna variable o instrucción que no sea necesaria, no me he puesto a revisarlo todo al 100%, sólo que funcione correctamente.
Muy bien ¿y qué es lo que hace este ejemplo?
Si descargas y abres el proyecto verás 3 archivos. Para probar el ejemplo sólo tienes que editar el main.java y cambiar los parámetros de conexión en función de tu operador. Si usas Movistar en España puedes dejar el código como está y compilar y ejecutar el proyecto.
Cuando lo ejecutes verás que el módem se conecta a GPRS y, por la salida estandard (normalmente ASC0), te sacará la IP que ha obtenido. Yo si lo ejecuto obtengo:
Después de eso abre el explorador (yo sólo lo he probado en Microsoft Explorer, en ninguno más) y escribe algo en la barra de direcciones como:
http://80.29.209.172/suma.html?a=10&b=20
Y obtendrás una respuesta tal que así:
Es decir, el módem ha recibido la petición HTTP GET, a tomado los valores de los parámetros pasados en la URL “a” y “b” los ha sumado y ha devuelto una página HTTP con la suma. Evidentemente que lo que hace el presente ejemplo (una calculadora GPRS) sirve de bien poco y no tiene mucho sentido, pero seguro que se os ocurren muchas ideas a partir del ejemplo.
Una cosita más, en el código tengo puesta una variable de nombre “numMaxClientesX”. En esta podéis especificar el número de peticiones concurrentes que puede haber. Por defecto está a “1″ y podéis subirla, pero recordad que los módems Siemens / Cinterion soportan máximo 6 sockets y uno ya lo toma el socket listener que escucha en el puerto TCP80 (Http). También pensad que se lanza un Thread por cada conexión establecida.
El ejemplo está hecho utilizando los sockets mediante clases java. A quien me pregunte que qué es mejor, si gestionar los sockets con clases java o con comandos AT como he hecho otras veces por este blog, pues no se qué decirle. Más o menos es lo mismo. La ventaja de usar clases java es que quizás la aplicación (un socket server) resulte algo más sencilla de implementar y con comandos AT es que se tiene algo más de control del estado de cada uno de los sockets. Son apreciaciones subjetivas, realmente ambos métodos funcionan muy bien, en ocasiones uso uno y en otras otro.
Espero que os resulte de interés, otro día más.
Post relacionados:
- Cómo obtener la hora con los terminales MTX y módems Siemens / Cinterion Llevo casi un mes sin escribir en blogElectronica. Y es...
- Nuevo módem GPRS teminal MTX65 basado en el módem Siemens TC65 Matrix Electrónica ha lanzado la distribución de un nuevo modelo...
- MTX65-ULP. Módem GRPS Ultra Low Power basado en Siemens/Cinterion Hoy voy a hablar de un nuevo terminal, del...
- Compresión de archivos con J2ME en módems GPRS Siemens TC65 En muchas aplicaciones con módems GPRS es necesario almacenar datos...
- Ejemplo de FTP Java para módems gprs Cinterion TC65 y XT65 Posiblemente en alguna ocasión tengas que hacer un programita en...
Etiquetas: cinterion, ejemplo java, mtx65, tc65, xt65
bueno , bueno!!!
Cada día me sorprendes mas!!!
Salu2
Pua
Muchas gracias, por este estupendo artículo.
Saludos.
Genial!!!… eres un crack!!!
Adquiri un TC65T y estoy buscando un GPS externo para utilizarlo con el modem, alguien por aqui ah hecho esta comunicacion modem-gps antes? me puede recomendar algun modulo GPS en especial ?
Saludos.
No se si esta bien postear en este tema.. pero no sabia donde postear la siguiente pregunta…
Querio intentar usar el USB del modulo TC65i y lo conecto a la pc y me lo reconoce como que hay un nuevo dispositivo.. pero no tengo el driver para que me lo reconozca bien…
lei por ahi que se necesita un archivo usbmodem.inf, pero no lo encuentro en todo el sdk.. alguien sabe dodne esta este archivo o de donde puedo bajarlo?
gracias!
ya consegui el driver gracias….
por si alguien lo quiere…
que me mande mail
a luciano.e.izquierdo@hotmail.com
saludos!
Consulta, tengo una aplicacion corriendo que hace una conexion http, mas precisamente un post, cada 15 minutos.
Talvez anda bien durante 2 semanas y en un momento se cuelga y empieza a mandar todo el tiempo Profile Could Not Activated.
Alguien sabe que puede ser?
lei en este post:
http://forums.sun.com/thread.jspa?threadID=5175174
Que hay mucha gente que le pasa lo mismo, uno de los que postea dice que en los TC65i ya no pasa mas, pero no le tengo mucha confianza alguien pudo resolver esto?
Hola Luciano,
a mi cuando me ha ocurrido eso, ha sido porque o no tengo cobertura (para establecer la conexión), o porque me he quedado sin recursos de sockets en el módem. ¿Vas llamando al System.gc() periódicamente?
Salu2
Antes que nada te felicito es un buen post muy util, oyes tengo una duda yo quiero implementar tu webserver para un experimento aqui en mexico con modem GPRs, mi duda consiste en los parametros a cambiar en tu aplicacion java:
“movistar.es” me imagino que es el APN de españa
“movistar” Es el nombre de usuario
“movistar” ¨Passw
y la IP es por la que accedera el equipo a mi webserver ?
Si señor, verdaderamente interesante, a ver si profundizo un poco sobre este post.
Como pequeño aporte os dejo el link donde he comenzado mis andanzas en este mundo de los modem creando un humilde server FTP con un Siemens TC-65 y probandolo con el Fillezilla. Es un poco entuerto hacerlo con este modelo pero weno, como experiencia añadida tambien vale ^_^
http://chispazocerebral.blogspot.com/2011/10/crear-server-con-modem-tc-65.html
Buenas, como siempre enhorabuena por este magnífico Blog.
Al ejecutar WebServer me da error JAVA no puede crear la instancia….
Ayuda por favor…. o, en su defecto, un ejemplo de conexion TCP, no me funciona ninguno de los ejemplos del Blog…… Los del puerto 80 sí, pero si utilizo otro…no.
Me podrías mandar, o colgar, un ejemplo de un servidor TCP que recibiera una cadena (‘Hola’) y delvolviera otra (‘Adios’).
Muchísimas Gracias…..
Hola Cesar,
pues no tengo otro ejemplo, pero te aseguro que el ejemplo del WebServer funciona. Eso que dices del puerto 80, ¿no será que tienes algún firewall en tu PC que bloquea la conexión a puertos que no sean el 80???
Salu2