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


unit ClientSocketThread; 
 
interface 
uses ScktComp, Classes, Registry, SysUtils; 
type 
  TClientSocketThread = class(TThread) 
  private 
    FClientSocket: TClientWinSocket; 
  public 
    constructor Create(CreateSuspended: Boolean; ASocket: TClientWinSocket); 
    procedure Execute; override; 
 
    property ClientSocket: TClientWinSocket read FClientSocket; 
 
   end; 
implementation 
uses ScktCnst; 
type 
 
  TClientSocketDispatcher = class(TClientSocket) 
  private 
    FInterceptGUID: string; 
    FTimeout: Integer; 
  public 
    constructor Create(AOwner: TComponent); override; 
    procedure ReadSettings(PortNo: Integer; Reg: TRegINIFile); 
    procedure WriteSettings(Reg: TRegINIFile); 
    property InterceptGUID: string read FInterceptGUID write FInterceptGUID; 
    property Timeout: Integer read FTimeout write FTimeout; 
  end; 
 
constructor TClientSocketDispatcher.Create(AOwner: TComponent); 
begin 
  inherited Create(AOwner); 
  ClientType := ctNonBlocking; 
end; 
 
 
procedure TClientSocketDispatcher.ReadSettings(PortNo: Integer; Reg: TRegINIFile); 
var 
  Section: string; 
begin 
  if PortNo = -1 then 
  begin 
    Section := csSettings; 
    Port := Reg.ReadInteger(Section, ckPort, 8080); 
  end else 
  begin 
    Section := IntToStr(PortNo); 
    Port := PortNo; 
  end; 
  FTimeout := Reg.ReadInteger(Section, ckTimeout, 0); 
end; 
 
procedure TClientSocketDispatcher.WriteSettings(Reg: TRegINIFile); 
var 
  Section: string; 
begin 
  Section := IntToStr(Port); 
  Reg.WriteInteger(Section, ckPort, Port); 
  Reg.WriteInteger(Section, ckTimeout, Timeout); 
end; 
{ TClientSocketThread } 
 
constructor TClientSocketThread.Create(CreateSuspended: Boolean; 
  ASocket: TClientWinSocket); 
begin 
 
end; 
 
procedure TClientSocketThread.Execute; 
begin 
  inherited; 
  //循环连接数据库,直到连接上为止; 
  //接收数据,发送数据。同步接收数据,同步发送数据; 
end; 
 
end.