IdDayTimeUDPServer.pas 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. { $HDR$}
  2. {**********************************************************************}
  3. { Unit archived using Team Coherence }
  4. { Team Coherence is Copyright 2002 by Quality Software Components }
  5. { }
  6. { For further information / comments, visit our WEB site at }
  7. { http://www.TeamCoherence.com }
  8. {**********************************************************************}
  9. {}
  10. { $Log: 10127: IdDayTimeUDPServer.pas
  11. {
  12. { Rev 1.0 2002.11.12 10:35:32 PM czhower
  13. }
  14. unit IdDayTimeUDPServer;
  15. interface
  16. uses IdAssignedNumbers, IdSocketHandle, IdUDPBase, IdUDPServer, Classes;
  17. type
  18. TIdDayTimeUDPServer = class(TIdUDPServer)
  19. protected
  20. FTimeZone : String;
  21. procedure DoUDPRead(AData: TStream; ABinding: TIdSocketHandle); override;
  22. public
  23. constructor Create(axOwner: TComponent); override;
  24. published
  25. property TimeZone: String read FTimeZone write FTimeZone;
  26. property DefaultPort default IdPORT_DAYTIME;
  27. end;
  28. implementation
  29. uses SysUtils;
  30. { TIdDayTimeUDPServer }
  31. constructor TIdDayTimeUDPServer.Create(axOwner: TComponent);
  32. begin
  33. inherited Create(axOwner);
  34. DefaultPort := IdPORT_DAYTIME;
  35. FTimeZone := 'EST'; {Do not Localize}
  36. end;
  37. procedure TIdDayTimeUDPServer.DoUDPRead(AData: TStream;
  38. ABinding: TIdSocketHandle);
  39. var s : String;
  40. begin
  41. inherited DoUDPRead(AData, ABinding);
  42. SetLength(s, AData.Size);
  43. AData.Read(s[1], AData.Size);
  44. s := FormatDateTime('dddd, mmmm dd, yyyy hh:nn:ss', Now) + ' -' + FTimeZone; {Do not Localize}
  45. with ABinding do
  46. begin
  47. SendTo(PeerIP, PeerPort, s[1], Length(s));
  48. end;
  49. end;
  50. end.