Buenas tardes!
Les comento mi situacion. Actualmente me encuentro con un programa que funciona en mi programa local pero que necesita ejecutar una accion (enviar un comando) a un servidor remoto simil-unix, el servidor debe recibir la peticion, ejecutarla y al finalizar devolverle informacion a la pc local. Se me ocurren las siguientes soluciones, pero queria ver con ustedes cual es la mas apropiada:
- Crear un programa que se conecte via telnet, mande la orden, se quede loopeando hasta que el servidor conteste con la data necesaria y salga. El problema con esto es que si la cantidad de acciones a ejecutar se acumula demasiado, seria bastante molesto andar conectandose y desconectandose via Telnet. Ademas es muy engorroso programar con Telnet porque hay que manejar el texto de la consola como respuesta de que si salio o no.
- Crear un socket en el cliente (pc local) y un socket del lado del servidor. Cada vez que se necesita ejecutar algo, la pc local le pasa la orden al socket local y este a su vez se lo pasa al servidor. Esta me parece la solucion mas prolija, pero me procupa toparme con problemas de firewall, puertos u otras cuestiones de seguirdad informatica fuera de mi alcance.
Por si las dudas aclaro que uso Java para todo.
Gracias
Saludos!
La segunda opción me parece la más apropiada. De esta manera puedes crear tu propio protocolo de comunicación de acuerdo a tus necesidades.
con telnet es una locura... y si te vas a encontrar problemas con los firewall y demás con los scoket, espera el doble con telnet (adivina cual fue el medio de hackeo por muchos años y se asume peligroso)
recuerda que el servidor debe tener configurao el port forwarding en el router y el firewall abierto en esee puerto, recuerda cuales son los puertos usables por el cliente para la conexión y no uses el mismo que el servidor
Hola, gracias por las respuestas. Esto es muy simple o me parece?
http://stackoverflow.com/questions/3763511/sending-telnet-commands-and-reading-the-response-with-java
Cuando entro a una sesion telnet con putty a mi servidor, aparece todo un texto de bienvenida y demas.. . Servira lo que dice el link anterior? Tengo miedo de probarlo y tirar el servicio :S
hola Xedrox , por favor no uses telnet, recuerda que va todo en plano... en menos de lo que cante un gallo tienes todo el servidor comprometido XD
(si llegaras a necesitar ese tipo de conexión en otra oportunidad, usa secure shell, ssh.)
como bien te indicaron, lo mejor es la segunda opción. saludos
Lastima que no tengo ssh habiltado en el equipo :( . Probare creando un socket remoto y local.