PDA

Visualizza la versione completa : Delphi e TcpClient


Il Pistolero
07-10-2004, 20:58
Salve a tutti

Avrei l'intezione di creare un prog in Delphi, che emula quello che fa Telnet...tanto per imparare un po meglio delphi....
Praticamente mi collego tramite la funzione TcpClient del delphi ad un host, con ip e porta inserite dall'utente....per esempio collegandosi ad un servizio di posta in uscita....
Quindi emulando la stringa di telnet("o smtp.libero.it 25")...
A questo punto in telnet si dovrebbe ricevere una stringa del tipo: 220 smtp2.libero.it ESMTP Service......ecc ecc...
Nel mio programma a questo punto(appena cliccato sul tasto Connetti), dovrebbe apparire in una casella di testo o in una memo, la stringa qui sopra...
Utilizzo quindi la funzione TcpClient1.Receiveln per visualizzare la stringa ricevuta....
Questa però non viene visualizzata...o meglio, viene visualizzata solo la seconda volta che ho premuto il tasto connetti(anche se sono sicuro che la connessione sia già attiva)....
Stessa cosa avviene quando invio la stringa "Helo ****"....ricevo la risposta solo la seconda volta che premo il tasto apposito...
Ma cliccando due volte il tasto, è ovvio che il comando viene inviato due volte, e anche se questo non è evidente e non si vede, ovviamento non va bene...
Quindi....sempre che qualcuno mi abbia capito...avete la più pallida idea del perché ? THX

alka
08-10-2004, 10:42
Premetto che il componente TcpClient è abbastanza obsoleto, anzi vecchio, e intricato da utilizzare.

A meno che tu non sia obbligato ad utilizzarlo, ti suggerisco di adottare i componenti Indy che dovrebbero essere già presenti nella tua distribuzione di Delphi (che versione hai?).

Se non li trovi, scaricali dal sito ufficiale (http://www.indyproject.org) (l'ultima release *completa e funzionale*, non beta, è la 9).

Tra i componenti esiste anche un TIdTelnet, se non sbaglio, ma è facile costruire un qualsiasi client TCP usando il componente TIdTCP; ti vengono offerte anche tante altre possibilità (come la gestione di un set di comandi, però dal lato server).

Ciao! :ciauz:

Il Pistolero
09-10-2004, 07:14
Grazie per avermi risposto...
Ho voluto provare il tcpclient, anche perchè diciamo che sono alle prime armi con questi componenti...
Proverò con i componenti Indy, che avevo già usato per altre cose e infatti sono molto piu pratici e funzionali....
Thx ancora...

Loading