Ich glaube ich habe soweit alles verarbeitet.
Server:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
Stream:=TMemorystream.Create;
end;
procedure TForm1.ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var BufSize: Integer;
s: String;
begin
Bufsize:=serversocket.Socket.receivelength;
stream.size:=bufsize;
serversocket.Socket.ReceiveBuf(stream,BufSize);
ImBild.picture.bitmap.loadfromstream(stream);
stream.free;
end;
der Server kann ohne Probleme kompiliert werden.
Client:
Delphi-Quellcode:
procedure TForm1.BtConnectClick(Sender: TObject);
begin
ClientSocket.host:=EdServerIP.Text;
ClientSocket.Active:=true;
LbStatus.Caption:='Connected';
end;
procedure TForm1.BtSendClick(Sender: TObject);
var stream:TMemorystream;
ssize:integer;
begin
Stream:=TMemoryStream.Create;
ssize:=stream.size;
Impicture.Picture.Bitmap.SaveToStream(Stream);
Stream.Position:=0;
ClientSocket.Socket.SendBuf(ssize, SizeOf(ssize));
clientsocket.socket.sendstream(Stream);
end;
Das Problem mit dem Konstantenobjekt habe ich jetzt gelöst und hier korrigiert. Habe stream.size in die Variable ssize geschrieben. Jetzt bekomme ich beim senden der daten folgende Fehlermeldungen:
http://87.106.244.110/daten/bilder/meldung2.bmp
und
http://87.106.244.110/daten/bilder/meldung1.bmp