大家有关于Delphi中的TUDPsocket的例子或者介绍什么的,能否指点一下,在网上找了好久都没找到,郁闷,回答者都有分 同上 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Delphi目录的Demos\Fastnet下不是有个udp的demo么? sorry,没看清楚,那是D6下NMUDP的例子,不过应该大部分方法和属性都是类似的 我有Indy的Demo。好像是在盒子上下载的,你去找找吧:www.2ccc.com如果找不到,就给我你的邮箱,我发给你吧。 看看DELPHI自己的例子就可以了,我做了个聊天的程序以前。 :) 为什么我在用Delphi得udpsocket控件时老是接受簿到数据呢???????????????????? 这是一个截屏的例子:procedure TClient.CUDPDataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer);var CtrlCode:array[0..29] of char; Buf:array[0..BufSize-1] of char; TmpStr:string; SendSize,LeftPos,TopPos,RightPos,BottomPos:integer;begin CUDP.ReadBuffer(CtrlCode,NumberBytes);{ 读取控制码 } if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='show' then begin { 控制码前4位为“show"表示主控机发出了抓屏指令 } if BmpStream.Size=0 then { 没有数据可发,必须截屏生成数据 } begin TmpStr:=StrPas(CtrlCode); TmpStr:=Copy(TmpStr,5,Length(TmpStr)-4); LeftPos:=StrToInt(Copy(TmpStr,1,Pos(':',TmpStr)-1)); TmpStr:=Copy(TmpStr,Pos(':',TmpStr)+1,Length(TmpStr)-Pos(':',TmpStr)); TopPos:=StrToInt(Copy(TmpStr,1,Pos(':',TmpStr)-1)); TmpStr:=Copy(TmpStr,Pos(':',TmpStr)+1,Length(TmpStr)-Pos(':',TmpStr)); RightPos:=StrToInt(Copy(TmpStr,1,Pos(':',TmpStr)-1)); BottomPos:=StrToInt(Copy(TmpStr,Pos(':',TmpStr)+1,Length(TmpStr)-Pos(':',TmpStr))); ScreenCap(LeftPos,TopPos,RightPos,BottomPos); {截取屏幕 } end; if LeftSize>BufSize then SendSize:=BufSize else SendSize:=LeftSize; BmpStream.ReadBuffer(Buf,SendSize); LeftSize:=LeftSize-SendSize; if LeftSize=0 then BmpStream.Clear;{ 清空流 } CUDP.RemoteHost:=FromIP; { FromIP为主控机IP地址 } CUDP.SendBuffer(Buf,SendSize); { 将数据发到主控机的2222口 } end;end; stringrid中的数据如何导出成文件文件啊。。 各位大大,哪儿有BusinessSkin用的皮肤下载啊?还是要自己做的? 急啊!! 在线等!关于button组件属性的问题 一对Socket同时传送两种数据包的问题!!!!!!1 如何得到子节点的数量?急!!!!! formula自定义函数 初学者问题 ADO多表连接操作中可不可以限制只对一张表或某几张表操作?急,在线等候!多谢! 请问如何制作OFFICE助手中的ACS文件 关于查找字符串? 关于DLL封装窗体的问题? 如何把文件存到db2数据库中?(定义blob类型报错,"invalid class typecast")..UP有分
你去找找吧:www.2ccc.com
如果找不到,就给我你的邮箱,我发给你吧。
procedure TClient.CUDPDataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
CtrlCode:array[0..29] of char;
Buf:array[0..BufSize-1] of char;
TmpStr:string;
SendSize,LeftPos,TopPos,RightPos,BottomPos:integer;
begin
CUDP.ReadBuffer(CtrlCode,NumberBytes);{ 读取控制码 }
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='show' then
begin { 控制码前4位为“show"表示主控机发出了抓屏指令 }
if BmpStream.Size=0 then { 没有数据可发,必须截屏生成数据 }
begin
TmpStr:=StrPas(CtrlCode);
TmpStr:=Copy(TmpStr,5,Length(TmpStr)-4);
LeftPos:=StrToInt(Copy(TmpStr,1,Pos(':',TmpStr)-1));
TmpStr:=Copy(TmpStr,Pos(':',TmpStr)+1,Length(TmpStr)-Pos(':',TmpStr));
TopPos:=StrToInt(Copy(TmpStr,1,Pos(':',TmpStr)-1));
TmpStr:=Copy(TmpStr,Pos(':',TmpStr)+1,Length(TmpStr)-Pos(':',TmpStr));
RightPos:=StrToInt(Copy(TmpStr,1,Pos(':',TmpStr)-1));
BottomPos:=StrToInt(Copy(TmpStr,Pos(':',TmpStr)+1,Length(TmpStr)-Pos(':',TmpStr)));
ScreenCap(LeftPos,TopPos,RightPos,BottomPos); {截取屏幕 }
end;
if LeftSize>BufSize then SendSize:=BufSize else SendSize:=LeftSize;
BmpStream.ReadBuffer(Buf,SendSize);
LeftSize:=LeftSize-SendSize;
if LeftSize=0 then BmpStream.Clear;{ 清空流 }
CUDP.RemoteHost:=FromIP; { FromIP为主控机IP地址 }
CUDP.SendBuffer(Buf,SendSize); { 将数据发到主控机的2222口 }
end;
end;