Socket Unix – Esempi di Server

Pubblicità

Per fare un processo un server TCP, è necessario seguire i passaggi indicati di seguito −

  • Creare un socket con il socket() chiamata di sistema.

  • Associa il socket a un indirizzo usando la chiamata di sistema bind (). Per un socket server su Internet, un indirizzo è costituito da un numero di porta sulla macchina host.

  • Ascolta per le connessioni con la chiamata di sistema listen ().

  • Accetta una connessione con la chiamata di sistema accept (). Questa chiamata in genere si blocca fino a quando un client non si connette al server.

  • Inviare e ricevere dati utilizzando le chiamate di sistema read() e write ().

Ora mettiamo questi passaggi sotto forma di codice sorgente. Inserisci questo codice nel file server.c e compilarlo con il compilatore gcc.

Gestire più connessioni

Per consentire al server di gestire più connessioni simultanee, apportiamo le seguenti modifiche nel codice precedente −

  • Inserire l’istruzione accept e il seguente codice in un ciclo infinito.

  • Dopo aver stabilito una connessione, chiamare fork() per creare un nuovo processo.

  • Il processo figlio chiuderà sockfd e chiamerà la funzione doprocessing, passando il nuovo descrittore di file socket come argomento. Quando i due processi hanno completato la loro conversazione, come indicato dal ritorno di doprocessing (), questo processo esce semplicemente.

  • Il processo padre chiude newsockfd. Poiché tutto questo codice si trova in un ciclo infinito, tornerà all’istruzione accept per attendere la connessione successiva.

Il seguente codice seguente mostra una semplice implementazione della funzione doprocessing.

Pubblicità



Lascia un commento

Il tuo indirizzo email non sarà pubblicato.