Newsgroup: it.comp.lang.delphi
Titolo: IdTCPServer

Ciao, sto cercando di stabilire una connessione tra 2 pc e voglio usare 
i componenti indy (v.10.0.76).
Cominicio col creare l'applicazione server: uso il componente 
IdTCPServer e con la pressione del pulsante faccio questo:
procedure TForm1.Button1Click(Sender: TObject);
begin
  IdTCPServer1.DefaultPort:=1050;
  IdTCPServer1.Active:=True;
end;
...a questo punto mi esce un errore:
You must have an OnExecute event.
Ora cosa faccio??
--- posted by geoForum on 
http://www.delphiedintorni.it

 Ora cosa faccio??
vedo..vedo..vedo... 'sta cazzo di sfera di cristallo ha problemi.... ah, 
  si!
Vedo uno dei componenti da te usato che ha un evento execute e tu non ci 
hai messo niente... O sbaglio?
-- 
Alberto Salvati
A NEAPOLITAN Delphi Developer who is studying c# and .net
"Dicette 'o pappece 'nfaccia 'a noce dammi 'o tiempo che pure te spertoso"

 Ora cosa faccio??
La butto lì: scrivere del codice per l'evento OnExecute ?
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

>La butto lì: scrivere del codice per l'evento OnExecute ?
l'ho notato l'evento, ma non so cosa scriverci dentro...


l'ho notato l'evento, ma non so cosa scriverci dentro...
Devi interpretare la richiesta del Client chiamante che
è rappresentato dal parametro AThread dell'evento
stesso ... hai visto le demo di Indy? ... prova a
vedere la demo che sta nella cartella "IdTcpDemo" è
abbastanza semplice ed istruttiva ...
Insomma, alla fine, nell'evento OnExecute devi mettere
ciò che il server deve fare ... ;)
	Ciao
	MassimoB
 
---------------------------------
http://www.massimobeschi.it/
---------------------------------
Se tu pagare come dici tu ...
Io lavorare come dico io ...
Se tu pagare come dico io ...
Io lavorare come dici tu ...
---------------------------------

 l'ho notato l'evento, ma non so cosa scriverci dentro...
I programmi non si scrivono da soli (almeno non ancora).
Stai creando un server, dovrà pur fare qualcosa.
Perché non ti documenti un pò sull'uso dei componenti prima di chiedere al
gruppo ?


Non riesco a trovare il parametro AThread, se non ho capito male serve al 
componente cliente per fare una richiesta (al server), ma non lo trovo da 
nessuna parte.
Per quanto riguarda il server, devo dirgli come rispondere alle chiamate, 
ma nella demo di indy c'č solo la chiamta da parte del client (che non 
prevede l'uso del parametro AThread )...


prevede l'uso del parametro AThread )...
Ho notato adesso che stai utilizzando la versione 10
che è stata notevolmente modificata rispetto alla 9.xx
... io sono fermo alla 9.00.18 per motivi di update di
vari progetti ... comunque nella versione 10 il client
chimanate lo trovi nel parametro AContext sempre
dell'evento OnExecute ... dall'help .chm di indy 10
scaricato dal sito
   TMyForm.MyServerExecute(AContext: TIdContext);
   var
      lCmd: string;
   begin
      lCmd :=
         Trim(AContext.Connection.IOHandler.ReadLn);
      if AnsiSameText(lCmd, 'HELP') then
      begin
         AContext.Connection.IOHandler.WriteLn('HELP');
         AContext.Connection.IOHandler.WriteLn('QUIT');
         AContext.Connection.IOHandler.WriteLn('GETTIMESTAMP');
         AContext.Connection.IOHandler.WriteLn('');
      end
      else if AnsiSameText(lCmd, 'QUIT') then
      begin
         AContext.Connection.IOHandler.WriteLn('Goodbye...');
         AContext.Connection.IOHandler.WriteLn('');
         AContext.Connection.Disconnect;
      end
      else if AnsiSameText(lCmd, 'GETTIMESTAMP') then
      begin
         AContext.Connection.IOHandler.WriteLn(
            FormatDateTime(Now, 'yyyy-mm-ddThh:nn:ss.zzz'));
         AContext.Connection.IOHandler.WriteLn('');
      end;
   end;
In pratica legge la richiesta del client
lCmd := Trim(AContext.Connection.IOHandler.ReadLn);
e risponde in base ad una certa logica
if AnsiSameText(lCmd, 'GETTIMESTAMP') then //<-logica
 
AContext.Connection.IOHandler.WriteLn(FormatDateTime(Now,
'yyyy-mm-ddThh:nn:ss.zzz')); //<-risposta al client
Ti consiglio di leggerti bene la documentazione del
componente!!!
purtroppo mi sa che di demo per la 10 non ce ne sono ma
non sono molto aggiornato in merito.
