Server che accetti più connessioni: da dove cominciare?

di il
2 risposte

Server che accetti più connessioni: da dove cominciare?

Salve a tutti ragazzi.

Spero di potermi avvalere della gentilezza e della competenza di qualcuno di voi.
In pochi giorni ho dovuto, senza averne alcuna esperienza, imparare di programmazione in rete per poter sviluppare una applicazione client server che inviasse dei dati (ricevuti sulla seriale di un modulo di sincronizzazione PTP) via TCP/IP verso un server.

Nonostante qualche difficoltà iniziale, il compito è stato espletato correttamente.
Il problema, ora, è che non c'è un solo client che deve inviare (continuamente, giacché invia le uscite di alcuni sensori) bensì più di una decina.

Come, quindi posso fare in modo che il server possa mantenere più client connessi contemporaneamente dai quali ricevere continuamente dei dati, senza che sia quindi chiusa ciascuna connessione?
Stavo leggendo di multithread, ma prima di addentrarmi gradire vostri consigli ed indicazioni giacché ho pochissimissimo tempo a disposizione. GRAZIE!

C++, SO windows 7.

2 Risposte

  • Re: Server che accetti più connessioni: da dove cominciare?

    Multithreading, come soluzione piu' semplice. Ci sono altri sistemi (I/O asincrono) ma sono piu' complicati da utilizzare
  • Re: Server che accetti più connessioni: da dove cominciare?

    Allora hai diverse possibilità.
    1. La piu complicata da studiare , ma piu semplice da implementare è usare i socket assincroni e quindi gestire il tutto in un'unico thread.Non so se hai mai creato una applicazione gui win32 ma il concetto è lo stesso.Ovvero crei tutti i tuoi socket e ti metti in attesa dei vari messaggi.
    2. Usi i concetti che già conosci e avvii ogni server dentro un nuovo thread,anche se questa implementazione sembra la piu semplice in realtà nasconde numerose insidie da dover gestire.
    3. Socket assincrono + multithread, assolutamente difficilissimo ma una volta fatto ti da proprio gusto.

    Ma vuoi scriverlo tu tutto il codice? ti va di far da cavia? sto sviluppando una libreria per i socket che è in fase alpha se vuoi ne faccio una beta e te la invio.(è scritta in c,potresti creare una classe e usarla al meglio in c++)
Devi accedere o registrarti per scrivere nel forum
2 risposte