Wiec tak jest funkcja sendStream, ale nie ma czegos w rodzaju RecvStream... czy cos mi umyka?
Chce wyslac bitmapke przez socketa, zapisuje TBitmap.SaveToStream(Stream);
Gdzie Stream to TMemoryStream, wysylam funckcja sendStream i nie wiem jak to odebrac :-8
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
Stream: TStream;
nReceived: Integer;
Buffer: array [0..9999] of Char;
begin
Stream := TMemoryStream.Create;
try
while True do begin
nReceived := Socket.ReceiveBuf (Buffer, sizeof (Buffer));
if nReceived <= 0 then
Break
else
Stream.Write (Buffer, nReceived);
Sleep (200);
end;
Stream.Position := 0;
Worker.Picture.Bitmap.LoadFromStream(Stream);
finally
Stream.Free;
Screen.Cursor := crDefault;
end;
end;
Nie dziala, zna ktos moze cos prostrzego?
Moze wysylam to zle?
procedure TForm1.Button1Click(Sender: TObject);
var
Stream: TStream;
q: Integer;
begin
for q := 0 to ServerSocket1.Socket.ActiveConnections -1 do begin
Stream := TMemoryStream.Create;
Stream.Size := 5000;
//Stream.Position := 0; - Oba sposoby sprawdzone
Image1.Picture.Bitmap.SaveToStream(Stream);
//Stream.Position := 0;
ServerSocket1.Socket.Connections[q].SendBuf(Stream, Stream.Size);
Stream.Free;
end;
end;
Do tego po
Image1.Picture.Bitmap.SaveToStream(Stream);
obrazek znika, dlaczego?
Zna ktos moze jakis ciekawy artykul o tych sprawach?