Ver Mensaje Individual
  #9  
Antiguo 04-07-2010
Avatar de adeszeus
adeszeus adeszeus is offline
Miembro
 
Registrado: abr 2010
Ubicación: San Mateo, Mexico (aun lado de Santa Maria y pasando el campo de futbol)
Posts: 47
Reputación: 0
adeszeus Va por buen camino
Unhappy en donde esta el error

este es el codigo de el servidor
Código Delphi [-]
 
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
    sMensaje: String;
    fStream : TFileStream;
begin
 
  sMensaje := AContext.Connection.Socket.ReadLn;
  Mensaje.Lines.Add( 'De: ' + AContext.Binding.PeerIP );
  Mensaje.Lines.Add( 'Mensaje: ' + sMensaje );
   FStream := TFileStream.Create(
   ExtractFilePath(Application.ExeName) + 'servidor.jpg'
   , fmCreate);
  try
    AContext.connection.IOHandler.ReadStream(fstream);
  finally
    AContext.connection.Disconnect;
  end;
  FreeAndNil(FStream);
end;

y este es el codigo de mi cliente
Código Delphi [-]
var
  SrcWindow: THandle;
  SrcDC: HDC;
  Bitmap: TBitmap;
  Jpg: TJPEGImage;
  Stream: TMemoryStream;
  Width, Height: Integer;
begin
  contador:=contador+1;
  SrcWindow:= GetDesktopWindow;
  if SrcWindow <> 0 then
  begin
    SrcDC:= GetDC(SrcWindow);
    if SrcDC <> 0 then
    begin
      Bitmap:= TBitmap.Create;
      Jpg:= TJPEGImage.Create;
      try
        Width:= GetSystemMetrics(SM_CXSCREEN);
        Height:= GetSystemMetrics(SM_CYSCREEN);
          Bitmap.Width:= Width;
          Bitmap.Height:= Height;
        StretchBlt(Bitmap.Canvas.Handle,0,0,Bitmap.Width,Bitmap.Height,
          SrcDC,0,0,Width,Height,SRCCOPY);
        Jpg.CompressionQuality:= 40;
        Jpg.Assign(Bitmap);
        Jpg.Compress;
        Image1.Picture.Assign(Jpg);
        Stream:= TMemoryStream.Create;
        try
          Jpg.SaveToStream(Stream);
          IdTCPClient1.Host:='127.0.0.1'; //Prueba local
          IdTCPClient1.Port:=8080;
          IdTCPClient1.Connect;
          IdTCPClient1.Socket.WriteLn(mensaje.text);
          IdTCPClient1.IOHandler.Write(Stream, 0,true);
        finally
          Stream.Free;
        end;
      finally
        Bitmap.Free;
        Jpg.Free;
        ReleaseDC(SrcWindow,SrcDC);
      end;
    end;
  end;
IdTCPClient1.Disconnect;

Como se daran cuenta en este codigo, tomo la impresion de pantalla... y la deposito en un image para visualizar lo que envio... todo esta bien y aparentemente si recibe el stream mi IDTCPServer... pero jamas la puedo visualizar... hubo un momento en que si cerraba o liberaba el stream... pero segui trabajando y moviendo codigo y resulta que al final ya no funciona =( ... y hasta donde recuerdo esa era la base
Responder Con Cita