Форум: "Сети";
Поиск по всему сайту: 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.025 c
1-94361           ALM                   2002-04-17 12:51  2002.04.29  
Странное дело, однако...


14-94560          Derr                  2002-03-21 10:23  2002.04.29  
Куда ушли авторы сайта ?


1-94438           Rooman                2002-04-14 09:15  2002.04.29  
А законна ли экспертиза системного блока вообще?


3-94274           КСА                   2002-04-08 10:53  2002.04.29  
Вертикаьлный текст в QReport


1-94423           Cancer                2002-04-16 10:57  2002.04.29  
UpdateResource. А как в Win9x редактировать ресурсы?