大家好,刚学,有个问题请教,如何在线程里收发udp数据?就象在窗体上放一个控件一样,可以产生数据到达事件的!

个人网站美丽无瑕 2003-11-20 12:01:23
谢谢先!在线等待!
...全文
36 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hiflower 2003-11-20
  • 打赏
  • 举报
回复
type
TYourThread=class(TThread)
AUDP:TUDPSocket;//或 TNMUDP
procedure Execute;override;
procedure AUDPReceive(Sender: TObject; buf: pchar; var datalen: integer);
...
end;

implementation
procedure TYourThread.Execute;
begin
if not Assigned(AUDP) then
AUDP:=TUDPSocket.Create(self);
with AUDP do
begin
OnReceive:=AUDPReceive;
LocalHost:=..
LocalPort:=...
RemoteHost:=..
RemotePort:=...
Open;
end;
while not Terminated do
;do nothing

AUDP.Free;
end;
procedure TYourThread.AUDPReceive(Sender: TObject; buf: pchar; var datalen: integer);
begin
// your receive code here
end;
  • 打赏
  • 举报
回复
你好我试了你的方法,可是到了
if not Assigned(CltSck) then
错误 -> AUDP:=TNMUDP.Create(self);
这里就出错了
[Error] Unit_DataRecv.pas(39): Incompatible types: 'TComponent' and 'DataRecv'
DataRecv是我的线程的名字,请指教,谢谢先!
  • 打赏
  • 举报
回复
不好,还是不行

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧