从 INI 文件更改 DataSnap 服务器端口

Changing DataSnap server port from INI file

我已经能够在客户端设置一个 INI 文件,这样 用户可以更改端口以连接到服务器。

我的挑战是在服务器端开始工作,能够 从 INI 文件更改端口。

我可以在服务器上的设计时更改端口。编译时 按预期使用端口运行。

但是,我似乎无法从 INI 文件设置端口号。它总是 采用设计时间编号。

我认为当 服务器组件 "runs"?服务器组件 TDSServer 是一个 属性 TDSTCPServerTransport 的。

但我在服务器中看不到要锁定的事件。

如果我在 DataModuleCreate 或 DSServerClass1GetClass 中设置端口 number 不会从设计时设置的值更改。

我应该在什么时候设置端口号? (我正在使用 Delphi XE6。)

如果您想在运行时更改端口并且

DSTCPServerTransport1.Server = DSServer1;

使用:

  DSServer1.Stop;
  DSTCPServerTransport1.Port := 213;
  DSServer1.Start;

这项工作于 Delphi 2010

DataSnap 服务器组件 TDSServer 有 属性 AutoStart,默认值为 True。因此,在 DataModuleCreate 事件中,服务器已经启动,并且已经分配了 DSTCPServerTransport 的端口号,取自设计时的值。

您必须在设计时将 DSServer.AutoStart 属性 设置为 False,并且在 DataModuleCreate 事件中您首先从 INI 文件中设置 DSTCPServerTransport 的端口号,然后在 Start 中手动设置编码 DataSnap 服务器。