Ich habe eine ganz simple funktionierende Anwendung mit TServerSocket (hier zudem vereinfacht dargestellt):
Delphi-Quellcode:
TMainForm = class(TForm)
ServerSocket1: TServerSocket;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
ServerSocket1.ServerType := stNonBlocking;
ServerSocket1.Port := 4711;
ServerSocket1.Open;
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ServerSocket1.Close;
end;
procedure TMainForm.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
nachricht: string;
begin
nachricht:= string(Socket.ReceiveText);
if nachricht = 'hallo' then
Socket.SendText(ansistring('hallo empfangen'));
end;
end;
Nun soll das Ganze mit
Indy, also wohl TIdTCPServer, ersetzt werden. Ich lese, dass
Indy kein
nicht-blockierend kann bzw. man sich was mit Threads etc. ausdenken muss.
Kann mir jemand das obige Beispiel mit
Indy aufzeigen? Ich finde immer reichlich Kompliziertes, wäre aber an einer einfachen Lösung interessiert.
Falls jemand meint, ich sollte TServerSocket weiterverwenden, wäre ich natürlich interessiert, wie man das mit FMX einbindet.
- Uli
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...