Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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;



Страницы: 1 вся ветка

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

Наверх




Память: 0.45 MB
Время: 0.005 c
1-94377
a_k
2002-04-17 15:05
2002.04.29
Form.OnClose


3-94312
B_A_V
2002-04-09 08:33
2002.04.29
Мужики, помогите разобраться c create view .


4-94626
Nuhim
2002-02-22 10:43
2002.04.29
Как перехватить уход мыши в правый край экрана


1-94440
Sound
2002-04-15 22:49
2002.04.29
Елементарный вопрос


1-94476
Vik_R
2002-04-16 10:03
2002.04.29
hint





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский