Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Conexión Inversa
Conexión Inversa
Conexión Inversa
En un artículo anterior vimos lo que era una conexión básica cliente servidor aprendimos
como funcionaba y como implementarla usando Delphi 7 y dos componentes muy potentes.
La conexión inversa es algo así como un "paradigma en la programación", que bien como
los que ya saben, en una conexión cliente servidor el cliente se conecta al servidor y
controla todo desde su máquina.
Sin embargo una conexión inversa se refiere literalmente a que el servidor se conecte al
cliente y este puede realizar funciones sobre el cliente, es algo bastante raro pues rompería
el protocolo que ya conocemos, pero en realidad no es así.
Paso 1:
Agregamos el componente TServerSocket.
Paso 2:
En el evento OnCreate de nuestro form agregamos los parámetros para poner a la escucha:
(O podemos crear un botón que lea desde un TEdit y conecte... es como mucho mejor)
Con eso ya está nuestro Cliente (Servidor), pero igual... podemos agregar más cosas para
mejorar, vamos a los eventos de nuestro componente TServerSocket.
Paso 3:
Agregamos los eventos de control...
En el evento OnClientError agregamos esto:
pascal Código:
Ahora cuando acepte una conexión quiero que me avise, entonces en el evento
OnClientConnect agregamos:
pascal Código:
Y en el evento OnClientDisconnect:
pascal Código:
Paso 4:
Ahora deben poner las funciones, es decir la información que mandaremos a la otra pc...
Entonces en un botón lo que quieran ponen en orden los parámetros, primero el nombre del
ocmponente, luego la constante "Socket" (que es donde recibe o envía datos... por cierto
está constante se declara automáticamente...), luego el parámetro connections que indica a
cuál de los ordenadores conectados queremos enviar un mensaje (entonces como si fuera un
arreglo o matriz ponemos la posición de la conexión
pascal Código:
Eso es por si es solo una conexión, para los multiconexión es un poquito diferente...
y listo eso es todo para nuestro Cliente (servidor).
Bueno ahora programaremos lo que supuestamente llaman en los foros el "servidor", que en
realidad viene siendo el cliente, simplemente porque así es la conexión inversa...
Paso 1:
Agregamos el componente TClientSocket.
Paso 2:
Ahora en el evento OnCreate del formulario cambiamos los parámetros de nuestro cliente
para que empiece a buscar conexiones.
pascal Código:
1.ClientSocket1.Address:= '127.0.0.1'; // esta es la IP REMOTA
(nuestra IP o no-ip), pueden crear un Edit server
2.ClientSocket1.Port:= 1234; // el puerto
3.ClientSocket1.Active:= True; // activamos
4.ClientSocket1.Open;
paso 3:
Ahora empezaremos a programar las funciones que recibe del computador que nos
controla... hacemos clic en ell evento OnRead y agreamos...
pascal Código:
pascal Código:
1.procedure TForm1.ClientSocket1Error(Sender: TObject;
2. Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
3. var ErrorCode: Integer);
4.begin
5.ErrorCode:= 0;
6.end;
Por ejemplo en el evento OnClientError ponemos lo mismo que en el cliente... para que
controle los errores...
Una aplicación de este tipo es verdaderamente útil cuando alguna empresa de servicios IT
necesite ofrecer soporte remoto, tu podrías desarrollar una aplicación con este tipo de
conexión.