Einzelnen Beitrag anzeigen

UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Ersetzen nicht-blockierender TServerSocket durch Indy

  Alt 12. Mai 2014, 13:42
Die für mich vielleicht die einfachste Lösung ist:
TServerSocket einfach wie gehabt weiterverwenden.
Es muss ja kein Icon im Designer verwendet werden, man kann das Socket ja auch zur Laufzeit erzeugen.
Wie das so immer mit dem Bäumen im Wald ist.
Also
Delphi-Quellcode:
  TMainForm = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  public
    procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
  end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
  ServerSocket1 := TServerSocket.Create(self);
  try
    ServerSocket1.Port := 4711;
    ServerSocket1.OnClientRead := ServerSocket1ClientRead;
    ServerSocket1.Open;
  except
    on E: Exception do
      irgendetwas;
    end;
 end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if ServerSocket1 <> nil then
  begin
    ServerSocket1.Close;
    ServerSocket1.Free;
  end;
end;

procedure TMainForm.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
  nachricht: string;
begin
  nachricht:= string(Socket.ReceiveText);
  if nachricht = 'hallothen
    Socket.SendText(ansistring('hallo empfangen'));
  end;
end;
Damit läuft es auch. Die Frage hat sich somit erledigt.
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  Mit Zitat antworten Zitat