Socket de Unix – Ejemplos de Servidor

Anuncios

Para realizar un proceso de un servidor TCP, usted necesita seguir los pasos que se indican a continuación −

  • Crear un socket con el socket() llamada al sistema.

  • Enlaza el socket a una dirección usando la llamada al sistema bind (). Para un socket de servidor en Internet, una dirección consiste en un número de puerto en la máquina host.

  • Listen para conexiones con la llamada al sistema listen ().

  • Aceptar una conexión con la llamada al sistema accept (). Esta llamada normalmente se bloquea hasta que un cliente se conecta con el servidor.

  • Enviar y recibir datos usando las llamadas al sistema read() y write ().

Ahora pongamos estos pasos en forma de código fuente. Ponga este código en el servidor de archivos.c y compílelo con el compilador gcc.

Manejar múltiples conexiones

Para permitir que el servidor maneje múltiples conexiones simultáneas, realizamos los siguientes cambios en el código anterior:

  • Poner la instrucción accept y el siguiente código en un bucle infinito.

  • Después de establecer una conexión, llame a fork() para crear un nuevo proceso.

  • El proceso hijo cerrará sockfd y llamará a la función doprocessing, pasando el nuevo descriptor de archivo de socket como argumento. Cuando los dos procesos han completado su conversación, como indica el retorno de doprocessing (), este proceso simplemente se cierra.

  • El proceso padre cierra newsockfd. Como todo este código está en un bucle infinito, volverá a la instrucción accept para esperar la siguiente conexión.

El siguiente código seqment muestra una implementación simple de la función de doprocesamiento.

Anuncios



Deja una respuesta

Tu dirección de correo electrónico no será publicada.