Alka, ti sfido! (So che sei bravo su queste cose..)
Crea un nuovo form, mettici il componete IdTCPServer, apri il socket e mettilo in ascolto.
Fatto ciò collegati con uno o due telnet al socket appena aperto, dopodiché chiudi il form (chiaramente il form deve sconnettere le connessioni attive.)
Prova una decina di volte e fammi sapere quante volte sarai costretto a chiudere il form con il taskmanager.
Lato client
codice:
ClientSocket:= TIdTcpClient.Create(Self);
ClientSocket.Host:= 'cicciopasticcio.dyndns.org';
ClientSocket.Port:= 3001;
ClientSocket.Connect;
TMLog.Lines.Append('Connesso con '+ ClientSocket.Host+ IntToStr(ClientSocket.Port));
ThLeggiSocket.Create();
ClientSocket.IOHandler.WriteLn('cur'+ GetCurrentDir);
Poi io uso un thread per leggere dal socket (sempre lato client)
codice:
procedure ThLeggiSocket.Execute;
begin
try
while MainForm.ClientSocket.IOHandler.Connected do begin
try
RigaIn:= MainForm.ClientSocket.IOHandler.ReadLn();
Se usi il thread ricordati che devi sincronizzarlo con il main form.