Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [delphi]Componenti indy!!

    Premettendo che ho consultato la guida sull'utilizzo dei componenti indy,vorrei sapere come fare per trasferire file con i componenti TidTCPClient e TidTCPServer.Ho fatto diverse prove,ma tutte hanno avuto esito negativo!Inoltre non capisco bene come si comporta l'evento onExecute di TidTCPServer!

    P.S. Qaulcha esempio mi farebbe comodo!

    Grazie!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Generalmente, assieme ai sorgenti è possibile scaricare anche numerosi esempi e demo che utilizzano i componenti fondamentali del package.

    I componenti IdTCPServer e IdTCPClient costituiscono le classi base fondamentali dalle quali derivano le varie implementazioni di client e server specifici (POP3, SMTP, ICMP, UDP, ecc.).

    L'evento OnExecute viene generato quando ha luogo una condizione che cambia lo stato del componente: ad esempio, a seguito di una connessione e/o disconnessione, alla ricezione di un comando e così via.

    In genere, tuttavia, è sconsigliabile usare direttamente questi componenti in un'applicazione, o meglio sono adatti per poter essere ereditati e creare un nuovo tipo di server e client "customizzato", anche se di solito, soprattutto nelle ultime versioni di Indy, si preferisce utilizzare componenti più specifici in base all'uso che se ne deve fare.

    Nel tuo caso, per trasferire file, sarebbe sufficiente caricare il file da inviare all'interno di uno stream per inviare poi quest'ultimo dal server al client che lo riceve.

    Di solito, segnalo un demo che è davvero utilissimo per capire come fare questo: ScreenThief.
    Si tratta di un'applicazione che trasferisce screenshot usando i componenti Indy; sostituendo alla schermata il tuo file, i concetti che ruotano attorno alla problematica inerenti l'uso dei componenti Indy dovrebbero rimanere immutati.

    Prova a dare un'occhiata e mi saprai dire.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    ti ringrazio tantissimo,anche se sono sorti altri problemi.
    Per tutta la durata del transferimento del file,il programma è inutilizzabile,e ciò non dovrebbe accadere:avresti qualche suggerimento su come avvallare quaeto problema??

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Dovresti usare un thread aggiuntivo ed eseguire il trasferimento del file in quel thread separato, che non interferisce con il thread primario dell'applicazione che si occupa invece della ricezione e della gestione dei messaggi (scatenando gli eventi opportuni).

    So che Indy contiene anche un componente IdAntiFreeze che dovrebbe essere preposto a questo scopo (evitare il "congelamento" dell'applicazione); tuttavia, non so se ci sono effetti collaterali derivanti dal suo utilizzo (dipendono dall'applicazione e da ciò che si esegue al suo interno).

    Eventualmente, consulta la Guida in merito per verificare queste condizioni.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.