Ich weiß nicht ob das dein Problem lösen wird, aber wenn ich zweimal direkt hintereinander Daten versende, wie hier:
Zitat von
ermler1992:
Delphi-Quellcode:
...
procedure TForm1.BtSendClick(Sender: TObject);
...
ClientSocket.Socket.SendBuf(ssize, SizeOf(ssize));
clientsocket.socket.sendstream(Stream);
end;
funktioniert es meistens nicht so wie es soll. Ich würde die Daten in einer Übertragung versenden, nämlich in etwa so:
Delphi-Quellcode:
unit Unit1;
interface
uses
...
type
TUebertragung =
Record
ssize: integer;
stream: TMemorystream;
//gibt das vielleicht irgendein Problem???
end;
TForm1 =
class(TForm)
...
procedure TForm1.BtSendClick(Sender: TObject);
var uebertragung:TUebertragung;
begin
Uebertragung.ssize:= Uebertragung.stream.size;
Impicture.Picture.Bitmap.SaveToStream(Uebertragung.Stream);
Uebertragung.Stream.Position:=0;
ClientSocket.Socket.SendBuf(Uebertragung, SizeOf(Uebertragung));
end;
Das ist alles ungetestet und mit Streams hab ich noch nicht gearbeitet, aber vielleicht klappt's ja so