Indy UDP服务器组件似乎依赖于Windows消息,因为我只有在鼠标光标移动到包含服务器组件的窗体上时才会看到新消息出现。
我使用以下代码在运行时创建了该组件:
我希望使用控制台或服务应用程序。我需要一个(不可见的)窗口句柄+一些Windows消息队列代码来让这个组件工作吗?
更新: 一些(非官方)文档documentation说:
TIdUDPServer在活动状态下创建一个侦听线程以侦听入站UDP数据包。...当ThreadedEvent为false时,在主程序线程的上下文中触发OnUDPRead事件。当ThreadedEvent为true时,在监听器线程的上下文中触发OnUDPRead事件。
我使用以下代码在运行时创建了该组件:
private
{ Private declarations }
Srv: TIdUDPServer;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
Srv := TIdUDPServer.Create(Self);
Srv.DefaultPort := 9009;
Srv.OnUDPRead := Self.udpServerUDPRead;
Srv.Active := True;
end;
我希望使用控制台或服务应用程序。我需要一个(不可见的)窗口句柄+一些Windows消息队列代码来让这个组件工作吗?
更新: 一些(非官方)文档documentation说:
TIdUDPServer在活动状态下创建一个侦听线程以侦听入站UDP数据包。...当ThreadedEvent为false时,在主程序线程的上下文中触发OnUDPRead事件。当ThreadedEvent为true时,在监听器线程的上下文中触发OnUDPRead事件。