El socket conecta la programación en C se define como los dos nodos en una red que pueden conectarse e interactuar entre sí. El otro socket (nodo) se acerca al primer enchufe para establecer una conexión, mientras que el primer socket escucha en un cierto puerto en una IP. Una conexión de socket sirve como un canal de comunicación entre dos partes para enviar mensajes. Vamos a escribir esta guía para mejorar significativamente su comprensión de la conexión de socket utilizando el paradigma de programación C. Enviaremos mensajes entre el servidor y el cliente utilizando el concepto de programación C en esta guía.
Ejemplo:
Los ejemplos presentados en esta guía se realizan en Ubuntu 20.04. Por lo tanto, para hacer estos ejemplos con Ubuntu 20.04, se debe instalar el compilador GCC. Después de instalar el GCC, se escriben algunos códigos C para demostrar el uso de la "Connectación de socket". En este ejemplo, vamos a crear dos archivos de código diferentes, uno es el código del lado del cliente y el otro es el código del lado del servidor. Conectaremos ambos archivos y enviaremos mensajes entre ellos.
Código del lado del servidor
Utilizamos el editor de texto que viene con Ubuntu 20.04. Primero, agregamos los diferentes archivos de encabezado como se muestra en la captura de pantalla. Estos archivos de encabezado son esenciales para este código de conexión de socket. Después de estos archivos de encabezado, definimos el puerto "8080". Después de esto, usamos la función "main ()" y tenemos las diferentes variables locales dentro de esta función "main ()". Ceate un "búfer []" de tamaño "1024" debajo de estas variables. El búfer se usa aquí para enviar y recibir los datos.
Luego, creamos el enchufe dentro de la declaración "si". En este socket, damos la dirección IP como "AF_INET". El tipo de conexión es "Sock_stream" que se pasa aquí como el segundo parámetro y pasa el "0" como el tercer parámetro. Si se cumple la condición dada, la declaración debajo de esta declaración "si" se ejecuta donde colocamos la declaración "perror" que imprime el error en el terminal. Luego, adjuntamos este socket al puerto "8080".
Usamos el "setsocketopt". Esto facilita el cambio de los parámetros para el socket al que se refiere el descriptor de archivo Sockfd. Aunque es totalmente opcional, esto promueve la dirección y la reutilización de puertos. Se evitan errores como "dirección ya en uso". Después de esto, especificamos la dirección para el socket. Se define en el archivo de encabezado. Para la "dirección.sin_port ", usamos los" htons "que se utiliza para convertir el número de puerto en un pedido de byte de host.
Luego, tenemos la función "bind ()" dentro de la declaración "si". Esta función "bind ()" se usa para unir un enchufe a una dirección. Contiene tres parámetros. Después de esto, creamos una variable "Valread" y colocamos la fucntion "Read ()". En lugar del descriptor de archivo inicial suministrado por Socket, la llamada de lectura utiliza el nuevo descriptor de archivo proporcionado por la función "Acept ()". Tenemos la instrucción "printf" que se utiliza para mostrar los datos. Luego, usamos la función "Send ()". Esta función se utiliza para enviar los datos en los enchufes.
Luego, nuevamente tenemos la instrucción "printf" y la función "cerrar ()". Esto se usa para apagar el zócalo y liberar todos los recursos que se asignan al socket. La función "apagar ()" también está aquí para apagar la conexión del socket. Al final, tenemos una declaración de "retorno 0".
Código del lado del cliente
Este código es similar al código del servidor anterior. Insertamos los diferentes archivos de encabezado que son necesarios para este código. Luego, declaramos la función "principal". Dentro de esta función "principal ()", tenemos varias variables locales. Establecemos un "búfer []" de tamaño "1024" después de estas variables. La transmisión y la recepción de datos en este caso emplean el búfer. Creamos el socket dentro de la instrucción "si". La dirección IP para este socket es "AF Inet". El tipo de conexión para este socket es "Stock Stream", que se suministra como el segundo parámetro y "0" como el tercer parámetro.
Después de esto, especificamos las direcciones después de la creación del enchufe. Luego, usamos esta dirección dentro de la instrucción "IF" y tenemos la instrucción "Printf" aquí. El primer argumento que tenemos es el "descriptor de archivo de socket", el segundo argumento es la dirección del host, y el tercer argumento es el tamaño de la dirección. Luego se usa la función "enviar ()". Los datos enviados a través de los enchufes se envían utilizando esta función. El comando "printf" y la función "cerrar ()" están presentes una vez más. Esto se hace para cerrar el socket y liberar todos los recursos que se le asignan.
Producción:
Como se espera que ejecutemos dos códigos independientes, debemos lanzar dos terminales separadas para lograr este objetivo. El código del lado del cliente se ejecuta en un terminal mientras el código del lado del servidor se ejecuta en el otro terminal. En el primer terminal, ingresamos el siguiente comando para compilar nuestro código del lado del servidor:
Al ejecutar el siguiente comando en el segundo terminal, compilamos el código del lado del cliente de la misma manera:
Ejecutamos los dos códigos uno en un momento en que se compilan. Sin embargo, dado que el código del lado del servidor está destinado a monitorear las solicitudes de conexión, debemos ejecutarlo primero. El siguiente comando se puede usar para ejecutar el código del lado del servidor:
Después de esto, el siguiente comando se puede usar para ejecutar el código del lado del cliente:
Después de usar ambos comandos en ambos terminales simultáneamente, obtenemos esta salida que se muestra en lo siguiente:
Conclusión
Presentamos esta guía para ayudarlo a comprender el "Socket Connect" en la programación C. Explicamos esto en detalle y proporcionamos ejemplos como la salida. Podrá enviar y recibir de manera efectiva los datos entre un cliente y un servidor utilizando los sockets después de pasar por el ejemplo proporcionado en esta guía. Este ejemplo solo sirve como una simple ilustración sobre cómo conectar los enchufes con la programación C y cómo se envían los datos.