Blockerar anslutningen?
Blockerar anslutningen?

Video: Blockerar anslutningen?

Video: Blockerar anslutningen?
Video: How to Fix the SSH “Connection Refused” Error 2024, November
Anonim

ansluta är en blockering ring som standard, men du kan göra det inte blockering genom att skicka SOCK_NONBLOCK-flaggan till socket. ansluta () blockerar tills TCP 3-vägs handskakning avslutas. Handskakning på lyssningssidan hanteras av TCP/IP-stack i kärnan och avslutas utan att meddela användarprocessen.

På samma sätt frågas det, vad är blockerande och icke-blockerande uttag?

I blockering läge, recv, send, connect (endast TCP) och acceptera (endast TCP) uttag API-anrop kommer blockera på obestämd tid tills den begärda åtgärden har utförts. I icke - blockering läge kommer dessa funktioner tillbaka omedelbart. välj vilja blockera tills uttag är redo.

vad är en blockeringsfunktion? A blockeringsfunktion räknar i princip för alltid. Det är vad det menar med blockering . Övrig blockerande funktioner skulle vänta på att IO skulle inträffa. en icke- blockering IO-system betyder en fungera startar en IO-åtgärd, går sedan inaktiv och hanterar sedan resultatet av IO-åtgärden när den händer.

Därefter är frågan, är socket accept blockering?

acceptera () blockerar uppringaren tills en anslutning finns. Om inget meddelandeutrymme finns tillgängligt på uttag för att hålla meddelandet som ska sändas, blockerar sedan send() normalt. Om inga meddelanden finns tillgängliga på uttag , väntar mottagningssamtalet på att ett meddelande kommer fram.

Är välj ett block?

Om timeout-argumentet pekar på ett objekt av typen struct timeval vars medlemmar är 0, Välj () gör inte blockera . Om timeout-argumentet är NULL, Välj () blockerar tills en händelse gör att en av maskerna returneras med ett giltigt (icke-noll) värde.

Rekommenderad: