Միացումն արգելափակվո՞ւմ է:
Միացումն արգելափակվո՞ւմ է:

Video: Միացումն արգելափակվո՞ւմ է:

Video: Միացումն արգելափակվո՞ւմ է:
Video: №105 Չակրաներ: Չաքրաների նշանակությունը: 2024, Նոյեմբեր
Anonim

միացնել է արգելափակում զանգել լռելյայն, բայց դուք կարող եք այն դարձնել ոչ արգելափակում անցնելով SOCK_NONBLOCK դրոշը միացնելու համար: միացնել () արգելափակում է մինչև TCP եռակողմ ձեռքսեղմումը ավարտելը: Ձեռքսեղմումը լսողական կողմում մշակվում է միջուկում TCP/IP կույտի միջոցով և ավարտվում է առանց օգտվողի գործընթացին ծանուցելու:

Նմանապես հարցնում են՝ ի՞նչ է արգելափակող և ոչ արգելափակող վարդակը:

Մեջ արգելափակում ռեժիմ, recv, ուղարկել, միացնել (միայն TCP) և ընդունել (միայն TCP) վարդակից API-ի զանգերը կկատարվեն արգելափակել անորոշ ժամանակով, մինչև պահանջվող գործողությունը չկատարվի: Մեջ ոչ - արգելափակում ռեժիմ, այս գործառույթները անմիջապես վերադառնում են: ընտրել կամք արգելափակել մինչև վարդակից պատրաստ է.

ինչ է արգելափակման գործառույթը: Ա արգելափակման գործառույթ հիմնականում հաշվարկում է ընդմիշտ: Ահա թե ինչ է նշանակում արգելափակում . Այլ արգելափակման գործառույթները կսպասեր IO-ի առաջացմանը: մի ոչ արգելափակում IO համակարգ նշանակում է ա ֆունկցիան սկսում է IO գործողություն, այնուհետև մնում է անգործուն, այնուհետև մշակում է IO գործողության արդյունքը, երբ դա տեղի ունենա:

Հետագայում հարց է ծագում, արդյոք վարդակն ընդունում է արգելափակում:

ընդունել () արգելափակում է զանգահարողին այնքան ժամանակ, քանի դեռ միացում չկա: Եթե հասցեում հաղորդագրությունների տեղ չկա վարդակից պահելու համար փոխանցվող հաղորդագրությունը, այնուհետև send()-ը սովորաբար արգելափակում է: Եթե հասցեում հաղորդագրություններ չկան վարդակից , recv զանգը սպասում է հաղորդագրության գալուն:

Ընտրե՞լ եք բլոկ:

Եթե ժամանակի արգումենտը ցույց է տալիս struct timeval տիպի օբյեկտ, որի անդամները 0 են, ընտրել () չի արգելափակել . Եթե ժամանակի արգումենտը NULL է, ընտրել () արգելափակում է այնքան ժամանակ, մինչև որևէ իրադարձություն չստիպի դիմակներից մեկը վերադարձնել վավեր (ոչ զրոյական) արժեքով: