• Viernes 19 de Abril de 2024, 21:59

Autor Tema:  Aplicacion Para Control De Una Red Local  (Leído 2720 veces)

betitono1

  • Miembro MUY activo
  • ***
  • Mensajes: 235
    • Ver Perfil
Aplicacion Para Control De Una Red Local
« en: Viernes 30 de Enero de 2004, 18:57 »
0
Hola que tal como podira hacer una aplicacion para la ejecucion de otras aplicaciones en diferentes maquinas de una red.

-Controlar su ejecucion.
-Enviar informacion a estas.
-Que estas aplicaciones envien informacion a una que los controle, es decir que se comuniquen entre si.


Saludos.

QliX=D!

  • Miembro MUY activo
  • ***
  • Mensajes: 214
    • Ver Perfil
Re: Aplicacion Para Control De Una Red Local
« Respuesta #1 en: Viernes 30 de Enero de 2004, 19:21 »
0
Hola!.

Bueno eso es sencillo haces un protocolo que se monte sobre TCP/IP para el manejo y administracion remota.
O usas RPC.
No es complicado tipo, la idea es mandar paquetes deun lado a otro con lo que necesitas.

Pasa uqe tu aplicacion tendria que ser muy parametrizable... asi que no se.. bueno eso es un idea... slds.
QliX=D! - From the top of Tsunami

_Viktor

  • Miembro MUY activo
  • ***
  • Mensajes: 271
    • Ver Perfil
    • http://AyudaCBuilder.foros.st
Re: Aplicacion Para Control De Una Red Local
« Respuesta #2 en: Viernes 30 de Enero de 2004, 21:17 »
0
Bueno, en el fondo lo que se trata de decir en le mensaje anterior es que utilices socket's para enviar las "ordenes" al equipo que tiene que realizar las tareas, aqui te dejo la url para un ejemplo de su uso:

http://www.visualcomponentlibrary.com/bcb/sockets/socket.htm

Saludos!
_Viktor _Yañez_
"Ser inteligente no es ser mas, solo equivocarse menos y no usar visual basic"

http]

betitono1

  • Miembro MUY activo
  • ***
  • Mensajes: 235
    • Ver Perfil
Re: Aplicacion Para Control De Una Red Local
« Respuesta #3 en: Sábado 31 de Enero de 2004, 14:58 »
0
gracias por su respuesta pero tengo algunas preguntas, necesito una aplicacion principal que controle a las demas, se puede hacer?, deben estar ejecutandose alguna de las aplicaciones a ser controladas para que funcione la comunicaon o el programa principal puede hacer que se abra o cierre cuando quiera.


Saludos

_Viktor

  • Miembro MUY activo
  • ***
  • Mensajes: 271
    • Ver Perfil
    • http://AyudaCBuilder.foros.st
Re: Aplicacion Para Control De Una Red Local
« Respuesta #4 en: Sábado 31 de Enero de 2004, 18:42 »
0
Hola, vamos que si lo piensas no es tan dificil, claro que puedes hacerlo con socket's, te doy una idea:

Supongamos que quieres enviar la orden de actualizar unos datos a la app cliente, puedes hacerlo de la siguiente forma:

Código: Text
  1. ServerSocket1->Socket->SendText("Actualizar");
  2.  

Luego en el evento OnRead del Socket cliente usas lo siguiente

Código: Text
  1. String sOrden = Socket->ReceiveText();
  2.  
  3. if(sOrden == "Actualizar")
  4.   {
  5.     //Realizar la actualizacion
  6.    
  7.   }
  8. else if(<Otra_Orden>)
  9. {
  10.   //Etc. etc.
  11. }
  12.  

Y mas aun podrias hacer una clase que te discrimine la accion para cada mensaje, asi a la hora de crear una instancia de tu clase podrias hacer alcomo como esto:

Código: Text
  1. TMiClase *Comando = new TMiClase(sOrden);
  2. Comando->Ejecutar();
  3.  

y por dentro de la clase discriminas la accion recibida y realizas al operacion asociada.

Espero te aclare algo, Saludos!
_Viktor _Yañez_
"Ser inteligente no es ser mas, solo equivocarse menos y no usar visual basic"

http]

seth_los

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Aplicacion Para Control De Una Red Local
« Respuesta #5 en: Sábado 31 de Enero de 2004, 22:32 »
0
Hola _Victor esa ultima parte me interesa podrias hacer un ejemplo sencillo de como se podria implementar una clase con los textos recibidos me gustaria tener una idea mas clara...

Saludos

Seth

_Viktor

  • Miembro MUY activo
  • ***
  • Mensajes: 271
    • Ver Perfil
    • http://AyudaCBuilder.foros.st
Re: Aplicacion Para Control De Una Red Local
« Respuesta #6 en: Domingo 1 de Febrero de 2004, 03:31 »
0
Aqui te dejo un ejemplo que se me ocurre asi , imagina una aplicacion Servidor que envia la orden de ejecutar o eliminar un archivo a la aplicacion cliente, he declarado la siguiente clase:

MiClase.h
Código: Text
  1.  
  2. //---------------------------------------------------------------------------
  3. #include <vcl.h>
  4. #ifndef MiClaseH
  5. #define MiClaseH
  6. //OPERACIONES
  7. #define EXEC 1
  8. #define DEL  2
  9. //---------------------------------------------------------------------------
  10. #endif
  11.  
  12. class MiClase
  13. {
  14.  private:
  15.    int  Accion;
  16.    String Fichero;
  17.  public:
  18.    void Ejecutar(void);
  19.    MiClase(int nOrden, String sArchivo);
  20. };
  21.  

MiClase.cpp

Código: Text
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "MiClase.h"
  4. //---------------------------------------------------------------------------
  5. #pragma package(smart_init)
  6.  
  7. void MiClase::Ejecutar()
  8. {
  9.  switch(this->Accion)
  10.  {
  11.   case EXEC:ShellExecute(0,"open",this->Fichero.c_str(),0,0,SW_SHOWDEFAULT);
  12.             break;
  13.   case DEL :DeleteFile(this->Fichero);
  14.             break;
  15.  }
  16. }
  17. MiClase::MiClase(int nOrden,String sArchivo)
  18. {
  19.  this->Accion = nOrden;
  20.  this->Fichero = sArchivo;
  21. }
  22.  

y Luego para su implementacion en el Evento OnRead del ClientSocket seria algo como esto:

Código: Text
  1. void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
  2.       TCustomWinSocket *Socket)
  3. {
  4.  String sMensaje = Socket->ReceiveText();
  5.  int nOrden = StrToInt(sMensaje.SubString(1,sMensaje.Pos(" ")-1));
  6.  String sFichero = sMensaje.SubString(sMensaje.Pos(" ")+1,sMensaje.Length());
  7.  
  8.  
  9.  MiClase *Accion = new MiClase(nOrden,sFichero);
  10.  Accion->Ejecutar();
  11.  
  12. }
  13.  

Y finalmente en la aplicacion Servidor tendrias que enviar un mensaje como el que sigue:

Código: Text
  1. ServerSocket1->Socket->SendText("1 algo.txt"); //El 1 es el EXE definido en MiClase
  2.  

Y eso.. disculpa lo burdo del ejemplo pero por tiempo no puedo hacer nada mas, espero lo entiendas y te sirva.

Saludos!
_Viktor _Yañez_
"Ser inteligente no es ser mas, solo equivocarse menos y no usar visual basic"

http]

betitono1

  • Miembro MUY activo
  • ***
  • Mensajes: 235
    • Ver Perfil
Re: Aplicacion Para Control De Una Red Local
« Respuesta #7 en: Viernes 13 de Febrero de 2004, 13:31 »
0
Gracias por el ejemplo no lo habia visto por eso volvi a preguntar, disculpa.


Saludos

betitono1

  • Miembro MUY activo
  • ***
  • Mensajes: 235
    • Ver Perfil
Re: Aplicacion Para Control De Una Red Local
« Respuesta #8 en: Viernes 13 de Febrero de 2004, 13:34 »
0
Una ultima pregunta como elijo a que cliente enviarle mensajes


Saludos

_Viktor

  • Miembro MUY activo
  • ***
  • Mensajes: 271
    • Ver Perfil
    • http://AyudaCBuilder.foros.st
Re: Aplicacion Para Control De Una Red Local
« Respuesta #9 en: Jueves 19 de Febrero de 2004, 08:19 »
0
Hola, en este caso se envia al primer cliente en el arreglo de conecciones del serversocket:


 
Código: Text
  1. ServerSocket1->Socket->Connections[0]->SendText("Lo que quieras");
  2.  
Para enviar al que tu eligas podrias usar un ciclo recorriendo estas conecciones y preguntado si la propiedad

 
Código: Text
  1. ServerSocket1->Socket->Connections[0]->RemoteAddress
  2.  

Es igual a la ip que buscas por ejemplo. O simplemente almacenar en otro arreglo una lista de las ip's y que estas coincidan con el orden de conecciones del serversocket

Ojo: el indice 0 que use arriba es solo para el primero, el numero de conecciones esta dado por:

Código: Text
  1.  ServerSocket1->Socket->ActiveConnections
  2.  

Saludos!
_Viktor _Yañez_
"Ser inteligente no es ser mas, solo equivocarse menos y no usar visual basic"

http]

betitono1

  • Miembro MUY activo
  • ***
  • Mensajes: 235
    • Ver Perfil
Re: Aplicacion Para Control De Una Red Local
« Respuesta #10 en: Jueves 19 de Febrero de 2004, 16:24 »
0
Gracias por tu respuesta voy a intentarlo

Saludos

betitono1

  • Miembro MUY activo
  • ***
  • Mensajes: 235
    • Ver Perfil
Re: Aplicacion Para Control De Una Red Local
« Respuesta #11 en: Lunes 23 de Febrero de 2004, 17:45 »
0
Hola que tal alguien me puede decir si esposible pasar parametros con sockets, o el contenido de una variable sea vual sea su tipo?

Saludos

QliX=D!

  • Miembro MUY activo
  • ***
  • Mensajes: 214
    • Ver Perfil
Re: Aplicacion Para Control De Una Red Local
« Respuesta #12 en: Jueves 4 de Marzo de 2004, 14:27 »
0
Lo mejor que podes hacer es trabajar todo como cadenas... y convertir los datos que necesitas en los extremos.
Por que si no te vas a hacer un lio.

por ejemplo supongamos que tenes que tenes un comando que se llamam Alarma yq ue implementa  varais alarmas y necesitas pasar como paramtro la alarma correspondiente entonces:

ServerSocket1->Socket->Connections[0]->SendText("ALARMA #int#1, #string#'Se Activo la Alarma Por falla'");

Y del otro lado luego lo recibes e indetificas que es parametricada por que contiene espacios el texto, luego cortas la cadena en los espacios y convertis el parametro en base a lo que esta entre # #, basicamente esa es una idea general de lo que podrias hacer.

slds.
 :kicking:
QliX=D! - From the top of Tsunami