Je li povezivanje blokirano?
Je li povezivanje blokirano?

Video: Je li povezivanje blokirano?

Video: Je li povezivanje blokirano?
Video: НОВЫЙ КЛИП И ДЕНЬ РОЖДЕНИЯ ДИМАША 2024, Marš
Anonim

povezati je blokiranje poziv prema zadanim postavkama, ali ga možete učiniti ne blokiranje prelaskom na socket zastavice SOCK_NONBLOCK. povezati () blokira do završetka TCP 3-smjernog rukovanja. Rukovanje na strani slušanja se rukuje TCP/IP stekom u kernelu i završava bez obavještavanja korisničkog procesa.

Slično, postavlja se pitanje šta je utičnica koja blokira, a šta ne blokira?

U blokiranje način, recv, send, connect (samo TCP) i accept (samo TCP) socket API pozivi će blok na neodređeno vrijeme dok se tražena radnja ne izvrši. U non - blokiranje modu, ove funkcije se odmah vraćaju. izaberite će blok do socket je spreman.

šta je funkcija blokiranja? A funkcija blokiranja u osnovi računa zauvek. To je ono što to znači blokiranje . Ostalo funkcije blokiranja bi čekao da se dogodi IO. ne- blokiranje IO sistem znači a funkcija pokreće IO akciju, zatim ide u stanje mirovanja i obrađuje rezultat IO akcije kada se dogodi.

Nakon toga, postavlja se pitanje da li utičnica prihvaća blokiranje?

prihvatiti () blokira pozivaoca dok se ne uspostavi veza. Ako nema slobodnog prostora za poruke na socket da zadrži poruku koja se prenosi, a zatim send() normalno blokira. Ako nema dostupnih poruka na socket , recv poziv čeka da stigne poruka.

Je li odabir bloka?

Ako argument timeout ukazuje na objekt tipa struct timeval čiji su članovi 0, izaberite () nije blok . Ako je argument timeout NULL, izaberite () blokira sve dok događaj ne izazove da jedna od maski bude vraćena sa valjanom (ne-nula) vrijednošću.

Preporučuje se: