应用IdTimeUDPServer和TIdTimeUDP组件

来源:互联网 发布:网络直播的起源 编辑:程序博客网 时间:2024/04/30 13:17
(1) unit U_UDPTime_Client;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient, IdTimeUDP,  StdCtrls;type  TF_UDPTime_Client = class(TForm)    Button1: TButton;    Combobox1: TComboBox;    lblTimeServer: TLabel;    Label1: TLabel;    Edit1: TEdit;    IdTimeUDP1: TIdTimeUDP;    procedure Button1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  F_UDPTime_Client: TF_UDPTime_Client;implementation{$R *.dfm}procedure TF_UDPTime_Client.Button1Click(Sender: TObject);begintry //设置Time服务器的地址 IdTimeUDP1.Host := Combobox1.Text; //显示时间 Edit1.Text := DateTimeToStr ( IdTimeUDP1.DateTime );except Showmessage('获取时间操作失败,请检查Time服务器是否活跃!');end;end;end.(2)unit U_UDPTime_Server;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer,  IdTimeUDPServer, StdCtrls,IdSocketHandle;type  T_UDPTime_Server = class(TForm)    Label1: TLabel;    Label2: TLabel;    IdTimeUDPServer1: TIdTimeUDPServer;    procedure FormActivate(Sender: TObject);    procedure IdTimeUDPServer1UDPRead(Sender: TObject; AData: TStream;      ABinding: TIdSocketHandle);  private    { Private declarations }  public    { Public declarations }  end;var  _UDPTime_Server: T_UDPTime_Server;  AccessTimes:integer;implementation {$R *.dfm}procedure T_UDPTime_Server.FormActivate(Sender: TObject);begin try //激活TIdECHOServer组件  IdTimeUDPServer1.Active := True;  AccessTimes :=0; except  ShowMessage('拒绝连接!由于安全的原因无法绑定到预定的端口!');  Application.Terminate; end;end;procedure T_UDPTime_Server.IdTimeUDPServer1UDPRead(Sender: TObject;  AData: TStream; ABinding: TIdSocketHandle);begin  AccessTimes :=AccessTimes +1;  Label2.Caption :='['+inttostr(AccessTimes)+'  次]';end;end.