winsock中的图像传递问题(100分)(100分)

  • 主题发起人 主题发起人 slzhang_2000
  • 开始时间 开始时间
S

slzhang_2000

Unregistered / Unconfirmed
GUEST, unregistred user!
利用阻塞方式多线程通信的client和server两台机器,client向server发出指令,指定获取该
server某图像缓冲区(如拷屏)的图像,并将该图像传递至client,由client解析并显示出来,请问
这一过程如何实现,最好能给源代码,本人为此事非常着急,请高人指点。
 
我这里有源代码,可以供你参考。
 
请将代码贴出来好吗?
 
堅決支持slzhang_2000﹗
 
jyniu:能否给我一份:bmxj@21cn.com
多谢!
 
现在怎么都问这个问题啊?
我关心的是如何快速拷屏。
表示关注。
 
为什么还是没有人能解答哪?如果以前有关这方面的回答,谁能告诉我那。已经贴上去三天了
为社么还是不回音哪?
 
Ask Wizard.He must know.I know he did this software before.

wizardyy@263.net
 
sendstream不就行了么
 
谁能给我一点有关这方面的Delphi的源程序,我vc很臭
 
参考例子remotecontrol吧,网址应该不难找的
 
TNMStrm来传递图像(d5+pwin98+10M网卡)
procedure Tclientform.NMMSGServ1MSG(Sender: TComponent; const sFrom,
sMsg: String);
var
DeskTopDC: HDc;
bitmap:tbitmap;
jpegimage:tjpegimage;
DeskTopCanvas: TCanvas;
strm1:tstream;
DeskTopRect: TRect;
begin
if pos('getscreen',smsg)<>0 then
begin
DeskTopDC := GetWindowDC(GetDeskTopWindow);
DeskTopCanvas := TCanvas.Create;
bitmap:=tbitmap.Create ;
jpegimage:=tjpegimage.Create ;
strm1:=tmemorystream.Create ;
DeskTopCanvas.Handle := DeskTopDC;
DeskTopRect := Rect(0,0,Screen.Width,Screen.Height);
bitmap.Width :=screen.Width;// div 2 ;
bitmap.Height :=screen.Height;// div 2 ;
bitmap.Canvas.CopyRect(rect(0,0,bitmap.Width,bitmap.Height),DeskTopCanvas,DeskTopRect);
jpegimage.Assign (bitmap);
nmstrm1:=tnmstrm.Create(self);
jpegimage.SaveToStream (strm1);
try
with nmstrm1 do
begin
Host := copy(sfrom,pos('>',sfrom)+1,255);
Port := 801;
FromName := nmstrmserv1.LocalIP;
TimeOut := 10000;
ReportLevel := Status_Basic;
PostIt(strm1);
end;
except
nmstrm1.Destroy ;
bitmap.Free;
jpegimage.Free ;
strm1.Free ;
ReleaseDC(GetDeskTopWindow,DeskTopDC);
exit;
end;
nmstrm1.Destroy ;
bitmap.Free;
jpegimage.Free ;
strm1.Free ;
ReleaseDC(GetDeskTopWindow,DeskTopDC);
end
else
Memomsg.Lines.Add(copy(sFrom,1,pos('>',sfrom))+sMsg);
end;
--------
procedure Tclientform.NMStrmServ1MSG(Sender: TComponent;
const sFrom: String; strm: TStream);
var
jpegimage:tjpegimage;
begin
jpegimage:=tjpegimage.Create ;
try
jpegimage.LoadFromStream (strm);
frmclientscreen.Show;
frmclientscreen.Canvas.StretchDraw(frmclientscreen.clientrect,jpegimage);
except
jpegimage.Free ;
memomsg.Width :=clientform.ClientWidth ;
exit;
end;
jpegimage.Free ;
end;
 
slzhang_2000:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
实际上这个问题还是没有解决
 
多人接受答案了。
 
后退
顶部