Witam
Używam Turbo Delphi Explorer. W zakładce INTERNET dostępny jest min.
komponent: TTcpServer. Próbuję zbudować na nim mini serwer nasłuchujący na
porcie. Połączenia nawiązuje na razie albo przez TTcpClient albo sesja
telnetu.
Wszystko działa ale tylko jeden raz, tzn odczytuję tylko jedna linię
informacji (readln) w procedure TForm1.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
i połaczenie zostaje zerwane - muszę je nawiązywać ponownie. Sporo googlałem
na ten temat ale poza krytykowaniem tych komponentów i namawianiem mnie do
przejścia na full wersje INDY lub ICS nie znalazłem odpowiedzi na moje
pytanie.
Na jakimś niemieckim forum znalazłem czlowieka z tym samym problemem ale
rozwiazania niestety nikt nie podal. Może ktos z Was naprowadzi mnie na
rozwiązanie?
Acha, komponent TTcsServer dziala w trybie bmThreadBlocking bo tylko w tym
trybie komponent notyfikuje jakiekolwiek eventy.
Dzieki z gory
Moj kod:
procedure TForm1.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
var
X : string;
begin
X := ClientSocket.Receiveln();
Memo1.Lines.Append( X );
ClientSocket.Sendln( X );
end;
P.S. - to ClientSocket.Sendln( X ); ma robi echo odebranej linii, po wyslaniu
echa polaczenie zostaje zerwane i musze je ponwnie nawiazywac, a ja chcialbym
aby ciagle trwalo.