Ver Mensaje Individual
  #2  
Antiguo 30-04-2010
manuc manuc is offline
Miembro
 
Registrado: abr 2010
Posts: 165
Reputación: 17
manuc Va por buen camino
Hola jplj,

La verdad es que entiendo bien lo que planteas.


Lo que puedes hacer es enviar un paquete al servidor, que este lo interprete y retorne otro paquete al cliente.

En Indy9, una de las estructuras lógica para hacerlo sería esta:

Servidor:
Código Delphi [-]
procedure TConexiones.idTCPServer(AThread: TIdPeerThread);
var
aStream:TMemoryStream;
begin
try
 if not AThread.Terminated and AThread.Connection.Connected then
    begin
    aStream := TMemoryStream.Create;
    AThread.Connection.ReadStream(aStream,-1,false);

    //Aquí Con aStream haces lo que quieras

    //Aquí retornas la respuesta; En este caso, contenida en un stream
     aThread.Connection.OpenWriteBuffer;
     aThread.Connection.WriteStream(aStream,true,true,aStream.Size);
     aThread.Connection.CloseWriteBuffer;

    FreeAndNil(aStream);
Except; 

end;//end-try

Estructura Cliente:

Código Delphi [-]
 TCPClient.WriteStream(aStream,true,true,aStream.Size); //Enviamos el paquete al servidor
 fTCPClient.ReadStream(fmsStream,-1); //Leemos la respuesta del servidor

Espero que te ayude.

Un saludo.
Responder Con Cita