【问题标题】:Changing DataSnap server port from INI file从 INI 文件更改 DataSnap 服务器端口
【发布时间】:2015-05-01 18:49:18
【问题描述】:

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

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

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

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

我认为端口取自组件 TDSTCPServerTransport 时 服务器组件“运行”?服务器组件 TDSServer 是一个属性 的 TDSTCPServerTransport。

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

如果我在 DataModuleCreate 或 DSServerClass1GetClass 中设置端口 数字不会改变设计时设置的值。

在什么时候设置端口号? (我使用的是 Delphi XE6。)

【问题讨论】:

  • 在没有看到应该设置此端口的代码的情况下无法判断。

标签: delphi datasnap


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    DSTCPServerTransport1.Server = DSServer1;
    

    使用:

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

    这项工作在 Delphi 2010 中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 2015-06-18
      • 1970-01-01
      • 2015-02-14
      • 2011-01-24
      • 1970-01-01
      相关资源
      最近更新 更多