簡體   English   中英

Delphi服務以偵聽TCP或UDP

[英]Delphi Service to Listen to TCP or UDP

閱讀這個問題: Delphi Windows服務設計 ,我看到大多數設計師在OnExecuteTServiceTThread方法中使用下面的代碼,以保持服務的活力。

while not Terminated do
begin
  // do something
end;

但是,如果我需要(並且我這樣做)創建一個服務來響應(使用Indy)主應用程序發送的消息以便發回一些身份驗證數據,我該怎么處理這個代碼,忽略它或者放一些Sleep()在里面?

Indy的TIdTCPServerTIdUDPServer組件是多線程的,因此您根本不需要使用TService.OnExecute事件。 你可以只激活它們TService.OnStart事件,並在其停用TService.OnStop事件,然后分配處理的TIdTCPServer.OnExecuteTIdUDPServer.OnUDPRead需要的事件。 這兩個事件都已為您循環,因此您不需要while not Terminated循環。 只需根據需要讀取/處理一個請求,然后退出並等待下一個事件重復。 讓服務器處理引發的任何異常。 請記住, TIdUDPServerThreadedEvent屬性默認為False,因此您應該在服務中將其設置為True。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM