Туташуу бөгөттөлөбү?
Туташуу бөгөттөлөбү?

Video: Туташуу бөгөттөлөбү?

Video: Туташуу бөгөттөлөбү?
Video: Электр ысыткыч куралдар.Чукул туташуу.Электр сактагыч. 2024, Ноябрь
Anonim

туташтыруу болуп саналат бөгөт коюу демейки боюнча чалыңыз, бирок сиз аны жок кыла аласыз бөгөт коюу SOCK_NONBLOCK желегин розеткага өткөрүү менен. туташтыруу () TCP 3 тараптуу кол алышуу аяктаганга чейин бөгөттөлөт. Угуу тарабындагы кол алышуу ядродогу TCP/IP стек тарабынан иштетилет жана колдонуучу процессин билдирбестен аяктайт.

Ошо сыяктуу эле, бөгөттөөчү жана бөгөттөөчү розетка деген эмне?

In бөгөт коюу режими, кабыл алуу, жөнөтүү, туташуу (TCP гана) жана кабыл алуу (TCP гана) розетка API чалуулары болот блок суралган иш-аракет аткарылганга чейин чексиз. In жок - бөгөт коюу режиминде, бул функциялар дароо кайтып келет. эрк тандоо блок чейин розетка даяр.

бөгөттөөчү функция деген эмне? А бөгөттөө функциясы негизинен түбөлүккө эсептейт. Бул эмнени билдирет бөгөт коюу . Башка бөгөттөө функциялары IO пайда болушун күтөт. эмес бөгөт коюу IO системасы а дегенди билдирет функция IO аракетин баштайт, андан кийин иштебей калат, андан кийин IO иш-аракетинин натыйжасын ал болгондо иштетет.

Андан кийин, суроо туулат: розетка кабыл алуу бөгөттөөбү?

кабыл алуу () байланыш болгонго чейин чалуучуну бөгөттөйт. Эгерде билдирүүлөр мейкиндигинде жок болсо розетка жөнөтүлө турган билдирүүнү кармап туруу үчүн, адатта send() блоктору. Эгерде даректе эч кандай билдирүүлөр жок болсо розетка , recv чалуу билдирүү келишин күтөт.

Блок тандообу?

Эгерде тайм-аут аргументи мүчөлөрү 0 болгон struct timeval түрүндөгү объектке ишарат кылса, тандоо () эмес блок . Эгерде тайм-аут аргументи NULL болсо, тандоо () окуя маскалардын бири жарактуу (нөл эмес) маани менен кайтарылганга чейин блоктойт.

Сунушталууда: