如何用UDP的SENDSTREAM发送数据(50分)

  • 主题发起人 主题发起人 tsedlinux
  • 开始时间 开始时间
T

tsedlinux

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用UDP的SENDSTREAM发送数据
 
http://www.mhdn.net/p/2002-09-17/5928.html
局域网中的UDP聊天程序
 
我试了那个程序 可是它并不能成功
不过还是要谢谢APP2001兄
 
这是我做的代码 它总是在SENDSTREAM时出错
报错如下:access violation at 0xff00ffff:read of address 0xff00ffff
我想知道如何用SENDSTREAM发送内存流

procedure TForm1.UDPDataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
buffer : array[0..4096] of char;
desk:tcanvas;
bitmap:tbitmap;
abit:tmemorystream;
tmpstr:string;
begin
buffer:='';
udp.readbuffer(buffer,numberbytes);
udp.RemoteHost:=fromip;
udp.RemotePort:=port;
edit1.Text:=fromip;
memo1.Lines.Add(buffer);

bitmap:=tbitmap.Create;
abit:=tmemorystream.Create;

desk:=tcanvas.Create; //以下代码为取得当前屏幕图象
desk.Handle:=getdc(hwnd_desktop);
with bitmap do
begin
width:=integer(screen.Width);
height:=integer(screen.Height);
canvas.CopyRect(canvas.cliprect,desk,desk.cliprect);
end;
abit.Position:=0;
bitmap.SaveToStream(abit);
abit.Position:=0;
udp.SendStream(abit); <-----出错
bitmap.free;
abit.free;

end;
 
d6的demo中有例子
 
我试了D6中的例子 可与我的原意不一样 我想知道 当把一个文件读入流中后 如何把它用UDP中的SENDSTREAM事件将它发送出去 是不是SENDSTREAM事件不能发送文件流??
 
多人接受答案了。
 
后退
顶部