Ar prisijungimas blokuoja?
Ar prisijungimas blokuoja?

Video: Ar prisijungimas blokuoja?

Video: Ar prisijungimas blokuoja?
Video: E. sveikata: pacientų prisijungimas ir medicininių dokumentų peržiūra 2024, Balandis
Anonim

Prisijungti yra blokavimas skambinti pagal numatytuosius nustatymus, bet galite to nedaryti blokavimas pereinant prie SOCK_NONBLOCK vėliavėlės lizdo. Prisijungti () blokuoja, kol baigsis TCP 3 krypčių rankos paspaudimas. Rankos paspaudimas klausymosi pusėje yra valdomas branduolio TCP/IP kamino ir baigiamas nepranešus vartotojo procesui.

Panašiai klausiama, kas yra blokuojantis ir neblokuojantis lizdas?

Į blokavimas režimas, recv, siųsti, prisijungti (tik TCP) ir priimti (tik TCP) lizdas API skambučiai bus blokas neribotą laiką, kol bus atliktas prašomas veiksmas. Į ne - blokavimas režimu, šios funkcijos iškart sugrįžta. pasirinkti valią blokas iki lizdas yra pasirengusi.

kas yra blokavimo funkcija? A blokavimo funkcija iš esmės skaičiuoja amžinai. Štai ką tai reiškia blokavimas . Kita blokavimo funkcijos lauktų, kol įvyks IO. ne blokavimas IO sistema reiškia a funkcija pradeda IO veiksmą, tada neveikia, tada apdoroja IO veiksmo rezultatą, kai tai įvyksta.

Vėliau kyla klausimas, ar lizdas priima blokavimą?

priimti () blokuoja skambinantįjį, kol neatsiras ryšys. Jei žinutėms nėra vietos lizdas Norėdami išlaikyti pranešimą, kurį reikia perduoti, tada send() paprastai blokuoja. Jei pranešimų nėra adresu lizdas , skambutis laukia, kol ateis pranešimas.

Ar pasirinkti bloką?

Jei skirtojo laiko argumentas nurodo struct timeval tipo objektą, kurio nariai yra 0, pasirinkite () ne blokas . Jei skirtojo laiko argumentas yra NULL, pasirinkite () blokuoja tol, kol dėl įvykio viena iš kaukių bus grąžinta su galiojančia (ne nuline) verte.

Rekomenduojamas: