Ali je povezava blokirana?
Ali je povezava blokirana?

Video: Ali je povezava blokirana?

Video: Ali je povezava blokirana?
Video: Dr Gabor Maté: When the Body Says No – Days of Leon Lojk 2022 2024, November
Anonim

povezati je blokiranje klic privzeto, lahko pa ne blokiranje tako, da v vtičnico prenesete zastavo SOCK_NONBLOCK. povezati () blokira do zaključka 3-smernega rokovanja TCP. Stisk rokovanja na strani poslušanja obravnava sklad TCP/IP v jedru in se zaključi brez obveščanja uporabniškega procesa.

Podobno se postavlja vprašanje, kaj je vtičnica, ki blokira in ne blokira?

V blokiranje način, recv, send, connect (samo TCP) in accept (samo TCP) vtičnico Klici API bodo blok za nedoločen čas, dokler se zahtevano dejanje ne izvede. V ne - blokiranje načinu, se te funkcije takoj vrnejo. izberite bo blok do vtičnico je pripravljen.

kaj je funkcija blokiranja? A funkcija blokiranja v bistvu računa za vedno. To je tisto, kar pomeni blokiranje . Drugo funkcije blokiranja bi počakal, da se pojavi IO. ne- blokiranje IO sistem pomeni a funkcijo zažene dejanje IO, nato preide v stanje mirovanja, nato pa obravnava rezultat dejanja IO, ko se to zgodi.

Kasneje se postavlja vprašanje, ali vtičnica sprejema blokiranje?

sprejeti () blokira klicatelja, dokler ni prisotna povezava. Če ni prostora za sporočila na vtičnico da zadrži sporočilo, ki ga je treba poslati, nato send() običajno blokira. Če na naslovu ni na voljo nobenega sporočila vtičnico , klic recv čaka, da prispe sporočilo.

Ali je izbran blok?

Če argument timeout kaže na objekt tipa struct timeval, katerega člani so 0, izberite () ne blok . Če je argument časovne omejitve NULL, izberite () blokira, dokler dogodek ne povzroči, da se ena od mask vrne z veljavno (ničelno) vrednostjo.

Priporočena: