¿Qué son los enchufes sin bloqueo?
¿Qué son los enchufes sin bloqueo?

Video: ¿Qué son los enchufes sin bloqueo?

Video: ¿Qué son los enchufes sin bloqueo?
Video: Para eso son los agujeros en los enchufes eléctricos 2024, Mayo
Anonim

no - bloqueo de enchufes . La solución a este problema se llama " no - bloqueo de enchufes ". De forma predeterminada, TCP enchufes están en " bloqueo "modo. Por ejemplo, cuando llama a recv () para leer desde una secuencia, el control no se devuelve a su programa hasta que se lee al menos un byte de datos desde el sitio remoto.

En consecuencia, ¿qué es el zócalo bloqueante y no bloqueante?

En bloqueo modo, el recv, enviar, conectar (solo TCP) y aceptar (solo TCP) enchufe Las llamadas a la API cuadra indefinidamente hasta que se haya realizado la acción solicitada. En no - bloqueo modo, estas funciones regresan inmediatamente. seleccionar voluntad cuadra hasta el enchufe está listo.

También se puede preguntar, ¿se bloquean los sockets de forma predeterminada? Por defecto , TCP enchufes se colocan en un bloqueo modo. Esto significa que el control no se devuelve a su programa hasta que se complete alguna operación específica.

Con respecto a esto, ¿cómo se hace un enchufe sin bloqueo?

Para marcar un enchufe como no - bloqueo , usamos la llamada al sistema fcntl. Aquí hay un ejemplo: int flags = guard (fcntl (socket_fd, F_GETFL), "no se pudieron obtener las banderas del archivo"); guard (fcntl (socket_fd, F_SETFL, flags | O_NONBLOCK), "no se pudo colocar banderas de archivo ");

¿Qué es el bloqueo de enchufes?

A enchufe puede estar en " modo de bloqueo "o" sin bloqueo modo . "Las funciones de enchufes en bloqueo (o sincrónico) modo no regresen hasta que puedan completar su acción. Se llama bloqueo porque el enchufe cuya función fue llamada no puede hacer nada - está bloqueada - hasta que la llamada regresa.

Recomendado: