PDA

Ver la Versión Completa : Aplicación cliente/servidor usando Sockets


Genner
17-11-2006, 22:19:07
buenas tardes foreros estoy en tiempo de ocio y estoy haciendo una aplicacion tipo cliente servidor usando sockets lo que hace es que cuando se conecta el cliente en la otra aplicacion creo una imagen y la muestro. pero lo que no he podido hacer q cuando el cliente se desconecte quite la la imagen creada.
alguna idea?

procedure Tpanel.servidorClientWrite(Sender: TObject;
Socket: TCustomWinSocket);
var
nombre,nombre_conexion:string;
etiqueta:TstaticText;
begin
nombre:=socket.ReceiveText;
//crear instancia de para la imagen
maquina:=Timage.Create(parent);
etiqueta:=TstaticText.Create(parent);
etiqueta.Parent:=self;
with maquina do
begin
Parent:=Self;
Picture.LoadFromFile('c:\genner\imagenes\perdimos.bmp');
width:=100;
Height:=100;
stretch:=true;
Name:=nombre;
OnDblClick:=click_;
//posicion en la pantalla
nuevo_alto:=alto_inicio;
nuevo_izquierda:=izquierda_inicio;
izquierda_inicio:=nuevo_izquierda+width+8;
label3.Caption:=IntTostr(izquierda_inicio);
if(izquierda_inicio>=panel.Width)then
begin
nuevo_alto:=alto_inicio+height+20;
alto_inicio:=nuevo_alto;
izquierda_inicio:=8;
nuevo_izquierda:=izquierda_inicio;
izquierda_inicio:=nuevo_izquierda+width+8;
end;

Left:=nuevo_izquierda;
top:=nuevo_alto;
etiqueta.Top:=maquina.Top+maquina.Height;
etiqueta.Caption:=nombre;
etiqueta.Left:=maquina.Left;
end;
end;

aeff
18-11-2006, 10:54:14
hola, mira, no se que clase de componentes estás utilizando para esa aplicación tuya cliente/servidor, pero yo te recomendaría para la aplicación Cliente el componente TClientSocket, y para la aplicación Servidor el componente TServerSocket de la pestaña Internet, al menos en delphi 5...

en vez de mostrar una imagen pondré un ejemplo mostrando un mensajito...

=> ahora, cuando se están conectando a la aplicación Servidor, en el evento OnClientConnect del ServerSocket haces lo siguiente:

...
begin
ShowMessage('Alguien se está conectando: ' + Socket.RemoteHost);
end;

=> para saber cuando se han desconectado, en tu caso deberías quitar tu imagen, pero como ejemplo, un mensajito,
En el evento OnClientDisconnect del ServerSocket:

...
begin
ShowMessage('Parece que ' + Socket.RemoteHost + ' se ha desconectado.');
end;

<<-->>

bueno, espero que te sirva de algo, estos dos componentes son los que yo uso para enviar textos, en pocos de los casos para los stream, de todas maneras son de lo mejor...