Blokerer forbindelsen?
Blokerer forbindelsen?

Video: Blokerer forbindelsen?

Video: Blokerer forbindelsen?
Video: Lastbil taber trailer og blokerer indkørsel til Q8 og McDonald's 2024, April
Anonim

forbinde er en blokering opkald som standard, men du kan gøre det ikke blokering ved at sende SOCK_NONBLOCK-flaget til socket. forbinde () blokerer, indtil TCP 3-vejs håndtryk afsluttes. Håndtryk på lyttesiden håndteres af TCP/IP-stak i kernen og afsluttes uden at underrette brugerprocessen.

På samme måde bliver det spurgt, hvad er blokerende og ikke-blokerende stik?

I blokering tilstand, recv, send, connect (kun TCP) og accept (kun TCP) stikkontakt API-kald vil blok på ubestemt tid, indtil den ønskede handling er blevet udført. I ikke - blokering tilstand, vender disse funktioner tilbage med det samme. vælge vilje blok indtil stikkontakt er klar.

hvad er en blokeringsfunktion? EN blokerende funktion dybest set beregner for evigt. Det er det, det betyder blokering . Andet blokerende funktioner ville vente på, at IO opstod. en ikke- blokering IO-system betyder en fungere starter en IO-handling, går derefter inaktiv og håndterer derefter resultatet af IO-handlingen, når den sker.

Efterfølgende er spørgsmålet, er socket accept blokering?

acceptere () blokerer den, der ringer, indtil der er forbindelse. Hvis der ikke er plads til beskeder på stikkontakt for at holde meddelelsen, der skal transmitteres, så blokerer send() normalt. Hvis ingen beskeder er tilgængelige på stikkontakt , venter opkaldet på, at der kommer en besked.

Er vælg en blok?

Hvis timeout-argumentet peger på et objekt af typen struct timeval, hvis medlemmer er 0, Vælg () gør ikke blok . Hvis timeout-argumentet er NULL, Vælg () blokerer, indtil en hændelse får en af maskerne til at blive returneret med en gyldig (ikke-nul) værdi.

Anbefalede: