Blokkeert verbinding?
Blokkeert verbinding?

Video: Blokkeert verbinding?

Video: Blokkeert verbinding?
Video: Ziggo Connect Box problemen 2024, November
Anonim

aansluiten is een blokkeren bel standaard, maar je kunt het niet maken blokkeren door de SOCK_NONBLOCK-vlag door te geven aan socket. aansluiten () blokken totdat de TCP 3-way handshake is voltooid. Handshake aan de luisterzijde wordt afgehandeld door de TCP/IP-stack in de kernel en wordt voltooid zonder het gebruikersproces op de hoogte te stellen.

Evenzo wordt gevraagd, wat is een blokkerende en niet-blokkerende socket?

In blokkeren modus, de recv, verzenden, verbinden (alleen TCP) en accepteren (alleen TCP) stopcontact API-aanroepen zullen blok voor onbepaalde tijd totdat de gevraagde actie is uitgevoerd. In niet - blokkeren modus, keren deze functies onmiddellijk terug. selecteer wil blok tot de stopcontact is klaar.

wat is een blokkeerfunctie? EEN blokkeerfunctie berekent in principe voor altijd. Dat is wat het betekent met blokkeren . Ander blokkeerfuncties zou wachten tot IO optreedt. een niet- blokkeren IO-systeem betekent een functie start een IO-actie, gaat vervolgens inactief en verwerkt het resultaat van de IO-actie wanneer het gebeurt.

Vervolgens is de vraag, is socket accept blocking?

aanvaarden () blokkeert de beller totdat er een verbinding is. Als er geen berichtenruimte beschikbaar is op de stopcontact om het bericht vast te houden dat moet worden verzonden, en vervolgens blokkeert send() normaal. Als er geen berichten beschikbaar zijn op de stopcontact , wacht de recv-oproep op een bericht.

Is selecteren een blok?

Als het time-outargument verwijst naar een object van het type struct timeval waarvan de leden 0 zijn, selecteer () doet niet blok . Als het time-outargument NULL is, selecteer () blokken totdat een gebeurtenis ervoor zorgt dat een van de maskers wordt geretourneerd met een geldige (niet-nul) waarde.

Aanbevolen: