2015-05-01 48 views
2

我已經能夠在客戶端設置INI文件,以便用戶可以更改端口以連接到服務器。從INI文件更改DataSnap服務器端口

我的挑戰是在服務器端工作, 從INI文件更改端口的能力。

我可以在服務器上更改設計時的端口。編譯時, 按預期與端口一起運行。

但是,我似乎無法設置一個INI文件的端口號。它總是 需要設計時間編號。

我認爲端口取自組件TDSTCPServerTransport當 服務器組件「運行」?服務器組件TDSServer是TDSTCPServerTransport的屬性 。

但我不能在服務器中看到一個事件來鎖定。

如果我在DataModuleCreate或DSServerClass1GetClass中設置了端口,那麼 號碼不會從設計時設置的值更改。

我該在哪個位置設置端口號? (我使用德爾福XE6。)

+0

無法看到應該設置此端口的代碼。 –

回答

4

DataSnap服務器組件TDSServer具有屬性AutoStart,默認值爲True。因此,在DataModuleCreate事件中,服務器已經啓動,並且DSTCPServerTransport的端口號已經分配,​​取自設計時的值。

你必須DSServer.AutoStart屬性設置在設計時爲False,並在DataModuleCreate事件首先在代碼DataSnap服務器手動設置DSTCPServerTransport的端口號從INI文件,然後Start

0

如果你想改變運行端口和

DSTCPServerTransport1.Server = DSServer1; 

使用:

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

這項工作在Delphi 2010