Està bloquejant la connexió?
Està bloquejant la connexió?

Vídeo: Està bloquejant la connexió?

Vídeo: Està bloquejant la connexió?
Vídeo: J Balvin, Willy William - Mi Gente (Official Video) 2024, De novembre
Anonim

connectar és un bloqueig truca per defecte, però pots fer que no sigui bloqueig passant a connectar la bandera SOCK_NONBLOCK. connectar () bloqueja fins a acabar l'enllaç de mans de 3 vies TCP. L'encaixada de mans al costat d'escolta la gestiona la pila TCP/IP al nucli i s'acaba sense notificar el procés de l'usuari.

De la mateixa manera, es pregunta, què és el sòcol de bloqueig i el que no?

En bloqueig mode, el recv, enviar, connectar (només TCP) i acceptar (només TCP) endoll Les trucades a l'API ho faran bloc indefinidament fins que s'hagi realitzat l'acció sol·licitada. En no - bloqueig mode, aquestes funcions tornen immediatament. seleccionar la voluntat bloc fins el endoll està a punt.

Què és una funció de bloqueig? A funció de bloqueig bàsicament calcula per sempre. Això és el que vol dir bloqueig . Altres funcions de bloqueig esperaria que es produeixi l'IO. un no- bloqueig Sistema IO significa a funció inicia una acció d'IO, després es posa inactiu i després gestiona el resultat de l'acció d'IO quan succeeix.

Posteriorment, la pregunta és si el socket accepta el bloqueig?

acceptar () bloqueja la persona que truca fins que hi hagi una connexió. Si no hi ha espai disponible per a missatges al endoll per contenir el missatge que s'ha de transmetre, llavors send() normalment es bloqueja. Si no hi ha missatges disponibles al endoll , la trucada recv espera que arribi un missatge.

És seleccionar un bloc?

Si l'argument timeout apunta a un objecte del tipus struct timeval els membres del qual són 0, seleccionar () no ho fa bloc . Si l'argument del temps d'espera és NULL, seleccionar () es bloqueja fins que un esdeveniment fa que es torni una de les màscares amb un valor vàlid (no zero).

Recomanat: