Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Вниз

TStream...получение картинки... 


avk   (2002-02-15 22:51) [0]

значить вроде с отправкой разобрался:

procedure TForm1.Button1Click(Sender: TObject);
var bmp:TBitMap;
srcfile:TStream;
begin
bmp:=TBitMap.Create;
try
bmp.Height:=Screen.Height;
bmp.Width:=Screen.Width;
BitBlt(bmp.Canvas.Handle,0,0,bmp.Width,bmp.Height,GetDC(GetDesktopWindow),0,0,SRCCOPY);
srcfile:=TStream.Create;
bmp.SaveToStream(srcfile);
ServerSocket1.Socket.Connections[0].SendStream(srcfile);
srcfile.Free;
finally
bmp.Free;
end;


а вот как получить клиенту эту картинку?
что-то пытался, но не получаеться...


procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var bmp:TBitMap;
srcfile:TStream;
begin
srcfile:=TStream.Create;
{???? что здесь надо писать?}
bmp:=TBitMap.Create;
try
bmp.LoadFromStream(srcfile);
bmp.SaveToFile(C:\1.bmp);
finally
bmp.Free;
end;



Ghost.   (2002-02-16 09:08) [1]

Там не все ак просто надо еще и размер мерить, тебе, что лень в фак заглянуть?



avk   (2002-02-16 21:51) [2]

вроде написал, должно работать...но ничего не работает:(
сервер:

begin
bmp:=TBitmap.Create;
try
bmp.Height:=Screen.Height;
bmp.Width:=Screen.Width;
BitBlt(bmp.Canvas.Handle,0,0,bmp.Width,bmp.Height,GetDC(GetDesktopWindow),0,0,SRCCOPY);
MS:=TMemoryStream.Create;
try
bmp.SaveToStream(MS);
MS.Position:=0;
Socket.SendText(IntToStr(ms.Size)+#0);
Socket.SendStream(MS);
except
MS.Free;
end;
finally
bmp.Free;
end;
end;

вроде сервер посылает сообщение, а вот клиент принять не может
клиент:

Reciving:=false;
RT:=Socket.ReceiveText;
if GetScreen then
begin
if not Reciving then begin
SetLength(sl,StrLen(PChar(RT))+1);
StrLCopy(@sl[1],PChar(RT),Length(sl)-1);
DataSize:=StrToInt(sl);
Data:=TMemoryStream.Create;
Delete(RT,1,Length(sl));
Reciving:=true;
end;
try
Data.Write(RT[1],length(RT));
if Data.Size=DataSize then <--- вот здесь почему-то размеры не совпадают
begin
Data.Position:=0;
bmp:=TBitMap.Create;
try
bmp.LoadFromStream(Data);
bmp.SaveToFile("C:\screen.bmp");
finally
bmp.Free;
end;
Data.Free;
Reciving:=false;
end;
except
Data.Free;
end;
GetScreen:=False;
end;




Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.03 c
3-94277           DANCHA                2002-04-06 09:57  2002.04.29  
Компонент TADOTable и глюки в работе с ним


6-94529           fixxxer               2002-02-14 18:28  2002.04.29  
Как получить список компьютеров в локальной сети


1-94413           Ирина                 2002-04-18 00:37  2002.04.29  
Помогите!!!!!!!!!!


1-94396           Swp                   2002-04-17 15:49  2002.04.29  
Запись и чтение текстового файла.


1-94426           Катерина              2002-04-17 14:59  2002.04.29  
Форма-фрейм-форма