当一个socket客户端连接到IdTcpServer服务端后,我只想让这个连接持续5秒钟, 
超过这个时限,不管客户端在做什么,IdTcpServer都就主动断开这个连接。 
实现方法:在form中添加了一个Timer控件,设置其Interval = 5000
         服务启动成功后,设置Timer.Enable := TRUE;
         并在其Timer事件中,加入检查超时及Disconnect的代码。
出现问题:
     Timer开始工作后(Timer.Enable := TRUE), 
         IdTcpServer就不正常工作了,无法接受连接等等。
          我想是不是要另开一个线程,来完成Timer所要完成的工作。请问,如何实现这样的功能需求!
谢谢!
 
procedure TfrmMain.IdTCPServerConnect(AThread: TIdPeerThread);
var
  Client: PClient; 
begin
  Client := New(PClient);
  Client.id := AThread.ThreadID;
  ...... 
  AThread.Data := Pointer(Client); 
end;procedure TfrmMain.Timer1Timer(Sender: TObject); ////
var
  Client: PClient;
  List: TList;
  i: integer;
begin
  List := IdTcpServer.Threads.LockList;
  for i := 0 to List.Count - 1 do
  begin
    Client := Pointer(TIdPeerThread(List.Items[i]).Data);
    if (Now - StrToDatetime(Client.loginTime) *24 * 60 * 60 > 5000) then
         TIdPeerThread(List.Items[i]).Connection.Disconnect;
  end;
end;