Suggerimento Implementazione Connessione a Server TCP

di MircoSoft il
5 risposte

Salve

Scusate la domanda stupida

Avrei l'esigenza di Implementare una Connessione ad un programma che Istanzia un Server Tcp

La connessione dovrà essere mantenuta sempre attiva (in caso di errore andrà reinizializzata)

Venendo da Vb6 c'erano poche alternative:

      Esisteva un solo Componete Socket che poteva essere congurato da Server o da Client con Protocollo TCP o UDP

In c# ho notato che esistono diverse alternative utilizzabili per realizzare un Client TCP

    Classe Socket

    Classe TclListener

    Classe TcpClient

Per realizzare un interfacciamento tra applicativi che dovranno comunicare tra loro in continuazione (e in maniera bidirezionale)

La comunicazione rappresenta una notifica di un evento accaduto durante l'esecuzione dei propri compiti e non dovrà influire sulle normali operazioni del programma (le notifiche verranno bufferizzate e analizzate in un secondo tempo)

quale implementazione è la più corretta?

Negli esempi ritrovati in rete non ho mai trovato un esempio che gestisse gli eventuali errori sulla connessione

Sempre comparando con il componente socket di vb6 era presente l'evento OnError nel quale era possibile implementare il ripristino della connessione

Ringrazio anticipatamente per i suggerimenti      

5 Risposte

  • Ti bastano le classi

     TclListener per il server

     TcpClient per il client

    Il linguaggio non c'entra, sono disponibili nella libreria. Net

    Non ti consiglio di fare confronti con il vb6 anzi usa il C# e studia le classi dalla documentazione 

  • Ovviamente DIPENDE da quale sia il livello di dettagli che ti serve E le tue capacita' come "programmatore".
    MA se sei libero di scegliere la libreria da usare SIA lato client CHE lato server E sei abbastanza "smanettone", esiste una libreria che e' un "portento"

    ZeroMQ

    https://zeromq.org/languages/csharp/

    MA NON E' per deboli di cuore ;-)

  • 04/12/2024 - MircoSoft ha scritto:

    ...

    La comunicazione rappresenta una notifica di un evento accaduto durante l'esecuzione dei propri compiti e non dovrà influire sulle normali operazioni del programma (le notifiche verranno bufferizzate e analizzate in un secondo tempo)

    quale implementazione è la più corretta?

    Negli esempi ritrovati in rete non ho mai trovato un esempio che gestisse gli eventuali errori sulla connessione

    ...

    https://stackoverflow.com/questions/27182180/how-to-reconnect-to-a-socket-gracefully

    https://learn.microsoft.com/en-us/answers/questions/1164560/c-tcp-ip-client-with-reconnect-and-timeout

    Dovresti descrivere esattamente cosa non ti funziona sugli esempi che hai provato

    Una volta che hai realizzato il codice base che ti consente di collegarti al server, inviare e ricevere roba, allora basta solamente proteggere il tutto dalle disconnessioni

    Ma finche' non descrivi esattamente cosa non ti funziona, non e' facile capire cosa consigliarti 

  • 04/12/2024 - migliorabile ha scritto:

    Ovviamente DIPENDE da quale sia il livello di dettagli che ti serve E le tue capacita' come "programmatore".
    MA se sei libero di scegliere la libreria da usare SIA lato client CHE lato server E sei abbastanza "smanettone", esiste una libreria che e' un "portento"

    ZeroMQ

    https://zeromq.org/languages/csharp/

    MA NON E' per deboli di cuore ;-)

    Visti gli esempi sul sito indicato, sembrano quattro righe messe in croce

    Perche' scrivi che non e'  "per i deboli di cuore" ?

  • Utilizza la doc microsoft magari partendo anche da qua https://learn.microsoft.com/it-it/dotnet/fundamentals/networking/sockets/tcp-classes

Devi accedere o registrarti per scrivere nel forum
5 risposte