如何使用参数启动Indy TCP Server?

时间:2017-07-28 19:46:34

标签: delphi server indy

我正在使用Indy 10(来自Delphi 2009)构建TCP服务器。在OnExecute事件中,我需要从主线程访问一些数据。我启动它时可以将该数据传递给服务器线程吗?服务器以IdTCPServer1.Active:=True;启动,所以我看不出如何传递一些参数。

1 个答案:

答案 0 :(得分:3)

无法将额外参数传递给TIdTCPServer。您的服务器事件处理程序必须在需要时从主线程检索数据。

要跟踪事件中的每个连接数据,您可以使用TIdContext.Data属性,或从TIdServerContext派生自定义类并将其分配给TIdTCPServer.ContextClass属性。例如,您的OnConnect事件处理程序可以使用TIdSyncTThread.Synchronize()从主线程检索最新数据,然后将其缓存在OnExecute的上下文中以供使用。 / p>