Socket acepta la función 2 C

Socket acepta la función 2 C
Cada vez que un nodo recibe un paquete de solicitud, esto podría aceptarlo y establecer la conexión. El método de aceptación () se ha empleado para lograr esto. Las solicitudes de conexión de muchos usuarios a veces son manejadas por un socket que se ha configurado como servidor. El socket inicial en el servidor de alguna manera no acepta la conexión. Más bien, presenta un enchufe único que se une a la conexión. La función Acept () proporciona el identificador del socket. El conector principal del servidor todavía está abierto y está listo para aceptar nuevas conexiones entrantes.

Quizás en el terminal del servidor, el número de solicitudes entrantes actuales es limitada. Si las llamadas entrantes del cliente llegan más rápido, entonces el servidor puede procesar los datos, la cola puede sobrecargar y las solicitudes entrantes futuras serán negaron mediante una excepción ECONNRefused. El tamaño de esta cola se proporciona como un parámetro para el método de escuchar. Sin embargo, la configuración invocará su limitación incorporada en el tamaño del paquete.

Con protocolos de terminal de paquetes (Sock_stream, Sock_Seqpacket), utilice el método Accept (). Acepta el primer paquete de solicitud para el puerto receptor, Sockfd, de la cola de solicitudes entrantes, establece un nuevo puerto asociado y proporciona un nuevo archivo en particular para el conector. La conexión recién formada no está configurada para escuchar. Esta función no afecta a la cava terminal primaria.

Sintaxis de la función de aceptación del socket en el idioma C

# int Accept (int Sockfd, struct Sockaddr *Addr, Socklen_t *Addrlen)

La función Acept () contiene diferentes parámetros, que incluye Sockfd, *AdDR y *AdDrlen. Los siguientes son los detalles de estos argumentos:

El parámetro "Sockfd" es un puerto que se desarrolló utilizando un enchufe, conectado a una dirección física por enlace. Pero también está esperando entradas después de escuchar.

El parámetro "ADDR" es un puntero de configuración "SockAddr". La ubicación del puerto de par está determinada por el nivel de redes y se da en este elemento. La clase IP del socket indica la sintaxis óptima de la IP proporcionada por el "addr". No se cargaría nada cuando el parámetro "addr" se vuelva nulo; "Adrlen" nunca se ha utilizado en esta situación y también tendrá que ser nulo.

El parámetro "ADDRLEN" es un parámetro de valoración: el receptor puede configurarlo con la dimensión de la estructura mencionada por el parámetro "ADDR", y proporcionaría el tamaño original del puerto de referencia. Si el caché especificado es demasiado limitado, el valor recuperado se recortará. En esta situación, el parámetro "Adtrlen" producirá una salida considerablemente mayor que el valor proporcionado a la función.

La función Accept () contiene el cliente a menos que se encuentre una conexión cuando no hay solicitudes existentes en la cola y el puerto no puede establecerse como no bloqueo. La función Accept () aparece con la excepción de Eagain o Ewouldblock cuando la configuración no está configurada y no hay solicitudes de espera en la cola.

Ejemplo de la función de aceptación de socket () en el lenguaje C en Ubuntu 20.04

Vamos a escribir el programa que demuestra que la función de aceptación () está retrasando la llamada.

Primero, importamos algunos archivos de encabezado requeridos. La biblioteca incluye el uso de metodologías de entrada y salida estándar. Indica diferentes categorías de símbolos y marcos, trata de las funcionalidades de la socket. Luego, especifique la variable simbolizada que se aplicará como el nodo de destino en los marcos dados a la función, y se ocupa de las diferentes funcionalidades de la cadena. A continuación, definimos el backlog 3. Contiene todos los factores vitales necesarios para producir el diseño integrado.

Aquí, llamamos a la función principal (). Dentro del cuerpo de la función main (), inicializamos algunas variables que se utilizan en este programa. Declaramos el puntero estructural de la variable "Sockaddr_in my_addr". Para crear un socket, utilizaremos el método Socket (). Además, hemos estado vinculando con la ayuda de la función bind (). Y asignar el valor de la función bind () a la variable "B". El método bind () contiene diferentes argumentos. Hemos usado una condición if-else anidada en este caso. Primero, definimos la condición de la declaración "si". Si el valor de la variable "b" es mayor que 0, la función printf () imprime el texto "vinculado con éxito".

De lo contrario, la función printf () detiene la ejecución del programa mostrando el mensaje "Error de enlace". Para fines de escucha, se llama a la función Listen (). Inicializaremos una variable "L" para almacenar el valor de la función escuchar (). La función escuchar () contiene dos parámetros. Ahora, aplicamos la condición en el valor de escuchar si el valor de "l" es mayor que 0, se llama al método printf () para mostrar el mensaje "escuchar". La función printf () muestra "no escuchar" si no se cumple la condición particular.

Del mismo modo, para aceptar solicitudes del sistema, hemos utilizado la función Accept (). Una vez más para esta función, usaremos la condición if-else. El valor de la función Acept () se almacena en la variable "ACC". Si el valor de la variable "ACC" será mayor que 0, llamamos al método printf () para imprimir la línea "aceptada". De lo contrario, llamamos a la instrucción printf () para imprimir "no aceptado". Entonces, de esta manera, terminaremos el código.

Recibimos este tipo de salida después de ejecutar el código anterior.

Conclusión

Hemos encerrado la función de Aceptar 2 C con gran detalle en este artículo. Se llama a la función Accept () para aceptar las solicitudes del sistema. Tenemos que importar diferentes bibliotecas antes de usar la función Acept (). Esta función contiene los parámetros responsables de varias funcionalidades. Las llamadas del sistema proporcionan un identificador de archivo particular para el puerto recibido si se ejecutan correctamente. Pero, en caso de error, el código muestra la excepción imprimiendo -1. Cuando se solicita una conexión de red, se envía una señal accesible y los usuarios usarán aceptación () para recibir un puerto para este tipo de conexión.