Kan man bruge TServerSocket komponentet i et Console program? Hvordan?
Jada. Jeg ville lave en klasse indeholdende TServerSocket komponenten + event handlers og nogle properties til at styre den med fra hovedprogrammet. Noget i stil med nedenstående burde man kunne arbejde videre med.
<pre>
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, ScktComp;
type
TDinKlasse = class
private
SS: TServerSocket;
procedure OnAccept(Sender: TObject; Socket: TCustomWinSocket);
procedure OnListen(Sender: TObject; Socket: TCustomWinSocket);
procedure SetActiveState(Active: Boolean);
function GetActiveState: Boolean;
public
constructor Create;
destructor Destroy; override;
property Active: Boolean read GetActiveState Write SetActiveState;
end;
{ TDinKlasse }
constructor TDinKlasse.Create;
begin
SS := TServerSocket.Create(nil);
SS.OnAccept := OnAccept;
SS.OnListen := OnListen;
end;
destructor TDinKlasse.Destroy;
begin
//lav evt. noget kode til at lukke alle forbindelserne
SS.Free;
inherited;
end;
function TDinKlasse.GetActiveState: Boolean;
begin
Result := SS.Active;
end;
procedure TDinKlasse.SetActiveState(Active: Boolean);
begin
SS.Active := Active;
end;
procedure TDinKlasse.OnAccept(Sender: TObject; Socket: TCustomWinSocket);
begin
end;
procedure TDinKlasse.OnListen(Sender: TObject; Socket: TCustomWinSocket);
begin
end;
var
DinKlasse: TDinKlasse;
begin
DinKlasse := TDinKlasse.Create;
try
//kode som f.eks. DinKlasse.Active := True; som så starter socket'en
finally
DinKlasse.Free;
end;
end.
</pre>