Hay muchas formas de hacer lo que tu quieres. Así que vamos a perfilar un poco las características que deseas que tenga tu aplicación.
Antes de nada tienes que decidir como se realizara la comunicación: UDP, TCP, Tuberías, Códigos de control, etc. Si quieres que tu programa funcione de forma independiente a como tengas montada la red de windows, y no te quieres liar con usuarios, contraseñas y demás, utiliza UDP o TCP.
Ahora tenemos que pensar como lo estructuraremos todo, podemos pensar en varios casos:
Caso 1:
Los equipos a controlar están esperando por las ordenes, y el equipo desde el que controlamos (a partir de ahora lo llamaremos controlador*) manda mensajes con las ordenes y no espera a ver el resultado.
Caso 2:
Igual que el Caso 1 pero los equipos pueden mandar mensajes al controlador para informarle de algún evento.
Caso 3:
Existe una constante comunicación entre los equipos y el controlador, se están enviando continuamente ordenes y recibiendo información de los equipos. En contraposición con los 2 casos anteriores en que los mensajes estaban espaciados en el tiempo.
Caso 4:
La cantidad de datos que se envían entre los equipos es elevada no pequeños mensajes.
* Uso la palabra controlador por no usar servidor o administrador que puede llevar a confusión con otros temas, aunque admito que controlador no me parece el termino mas adecuado ¿se os ocurre alguno mejor?
Pues bien, en los 2 primeros casos yo personalmente elegiría UDP. Este protocolo nos permite mandar mensajes entre dos equipos sin necesidad de establecer una conexión entre ellos, tan solo indicando la ip del receptor. Y una característica muy interesante es que permite enviar mensajes de tipo Broadcast, es decir, un solo mensaje llega a todos los equipos de la red a la vez. La desventaja es que no tenemos forma de saber si un mensaje llego a su destino, la única forma, si fuese imprescindible saberlo, seria que el receptor nos mandara otro mensaje de vuelta con la confirmación.
En los 2 últimos, sin embargo, elegiría TCP, incluso dependiendo de la información a tratar, usaría alguno de los protocolos que funcionan sobre TCP (http, ftp, telnet ...).
¿Cual es tu caso? ¿Se parece a alguno de los que describo? ¿No se parece en nada? ¿No entendí lo que querías? Cuentanos un poco mas lo que quieres hacer.
|