Einzelnen Beitrag anzeigen

Win32.API

Registriert seit: 23. Mai 2005
312 Beiträge
 
#1

Indy und TmemoryStream verschicken

  Alt 3. Dez 2005, 13:11
Hi,
Ich versuche jetzt schon länger einen Stream mit IdTCPClient und IdTCPServer zuverschicken bisher erfolglos .
Ich möchte das ein Steam von Client zu Server geschickt wird hier mal mein Ansatzt:


Client:
Im OnClick eine TButtons

Delphi-Quellcode:
aStream := TMemoryStream.Create;
ScreenToStream(aStream);
aStream.Position := 0;
Client.WriteStream(aStream, true, true, aStream.Size);
Server

Delphi-Quellcode:
procedure TConnections.ServerExecute(AThread: TIdPeerThread);
var
   aStream : TMemoryStream;
begin
aStream := TMemoryStream.Create;
Athread.Connection.ReadStream(aStream);
aStream.Position := 0;
Form1.Image1.Picture.Graphic.LoadFromStream(aStream);
FreeAndNil(aStream);
end
;



Die funktion ScreenToStream mach einen Screenshot und Speichert diesen in dem Übergebenen Stream.
Ich habe auch schonb mit einem Sniffer geguckt ob er etwas sendet , und ja er sendet...
String kann ich ohne Probleme verschicken und auch empfangen.
Es gibt weder Fehler noch wird ein Bild im Image angezeigt.


greetz

Edit: Ich habe jerzt heraus bekommen das das Prgramm nach Athread.Connection.ReadStream(aStream) hängen bleibt, d.h. es bearbeitet die Befehle dahinter nicht mehr. Woran kann das liegen? Also muss der Fehler bei Athread.Connection.ReadStream(aStream) sein? Aber was ist daran falsch?

greetz
  Mit Zitat antworten Zitat