Quello che vuoi è un server socket con multithreading.
Per questo, è necessario un thread principale che apre un socket per ascoltare (e attende connessioni client in ingresso). Questo deve andare in un ciclo temporale di qualche tipo.
Quindi, quando un client si connette ad esso, la funzione accept()
si sbloccherà e a quel punto sarà necessario servire la richiesta del client inoltrando la richiesta a un thread che ne tratterà.
Il lato server eseguirà un loopback e attenderà un'altra connessione mentre il thread precedente svolge il proprio compito.
È possibile creare thread come necessario oppure utilizzare un pool di thread che potrebbe essere più efficiente (risparmiando tempo per inizializzare nuovi thread).
Dai un'occhiata a here per ulteriori dettagli. Cercare socket del server con multithreading sul Web, in particolare bind()
, listen()
e accept()
dal lato server.
Se non è per la comprensione della programmazione socket, suggerirei di non utilizzare prese normali. Usa invece un framework di rete. [ACE] (http://www.cs.wustl.edu/~schmidt/ACE-overview.html) o [ZeroMQ] (http://www.zeromq.org/). Inizialmente sembra una buona idea fare prese di corrente, ma nel tempo diventa complicato. – Vikas
Ho provato ad ascoltare nuovamente la porta in un'altra discussione, ma non ha funzionato, dice che la porta è in uso, quindi ho chiesto;) – Lefsler
Non c'è niente di speciale che devi fare. Stai ancora ascoltando, quindi non provare ad ascoltare di nuovo. –