www.pudn.com > Roulette.rar > SocketServer.pas


unit SocketServer; 
 
interface 
uses ScktComp; 
type 
  TltSocketThread = class(TServerClientThread) 
  private 
  protected 
    procedure ClientExecute; override; 
 
  public 
  end; 
implementation 
 
{ TltSocketThread } 
 
procedure TltSocketThread.ClientExecute; 
var 
  Stream : TWinSocketStream; 
  Buffer : array[0 .. 9] of Char; 
begin 
  { make sure connection is active } 
  while (not Terminated) and ClientSocket.Connected do 
  begin 
    try 
      Stream := TWinSocketStream.Create(ClientSocket, 60000); 
      try 
        FillChar(Buffer, 10, 0); { initialize the buffer } 
        { give the client 60 seconds to start writing } 
        if Stream.WaitForData(60000) then 
 
        begin 
          if Stream.Read(Buffer, 10) = 0 then { if can't read in 60 seconds } 
            ClientSocket.Close;               { close the connection } 
          { now process the request } 
          //.//.. 
        end 
        else 
          ClientSocket.Close; { if client doesn't start, close } 
      finally 
        Stream.Free; 
      end; 
    except 
      HandleException; 
    end; 
 
  end; 
 
end; 
 
end.