የማይዘጉ ሶኬቶች ምንድን ናቸው?
የማይዘጉ ሶኬቶች ምንድን ናቸው?

ቪዲዮ: የማይዘጉ ሶኬቶች ምንድን ናቸው?

ቪዲዮ: የማይዘጉ ሶኬቶች ምንድን ናቸው?
ቪዲዮ: የማይዘጉ በአቶች ትረካ 1 2024, ግንቦት
Anonim

አይደለም - ሶኬቶችን ማገድ . የዚህ ችግር መፍትሔ ይባላል " አይደለም - ሶኬቶችን ማገድ ". በነባሪ, TCP ሶኬቶች ውስጥ ናቸው " ማገድ " mode. ለምሳሌ፣ ከዥረት ለማንበብ ወደ recv() ሲደውሉ፣ ከርቀት ጣቢያው ቢያንስ አንድ ባይት ውሂብ እስኪነበብ ድረስ መቆጣጠሪያው ወደ ፕሮግራምዎ አይመለስም።

በዚህ መሠረት የማገድ እና የማያግድ ሶኬት ምንድን ነው?

ውስጥ ማገድ ሞድ፣ ሪሲቪ፣ ላኪ፣ አገናኝ (TCP ብቻ) እና ተቀበል (TCP ብቻ) ሶኬት የኤፒአይ ጥሪዎች ይደረጋሉ። አግድ የተጠየቀው እርምጃ እስኪፈጸም ድረስ ላልተወሰነ ጊዜ። ውስጥ አይደለም - ማገድ ሁነታ, እነዚህ ተግባራት ወዲያውኑ ይመለሳሉ. ምርጫን ይምረጡ አግድ ድረስ ሶኬት ዝግጁ ነው.

እንዲሁም አንድ ሰው ሊጠይቅ ይችላል፣ ሶኬቶች በነባሪነት እየታገዱ ነው? በ ነባሪ ፣ ቲሲፒ ሶኬቶች የሚቀመጡት ሀ ማገድ ሁነታ. ይህ ማለት የተወሰነ ክዋኔ እስካልተጠናቀቀ ድረስ መቆጣጠሪያው ወደ ፕሮግራምዎ አልተመለሰም ማለት ነው።

ይህንን በተመለከተ እገዳ የሌለበትን ሶኬት እንዴት ይሠራሉ?

ምልክት ለማድረግ ሀ ሶኬት እንደ አይደለም - ማገድ , የ fcntl ስርዓት ጥሪን እንጠቀማለን. አንድ ምሳሌ ይኸውና፡ int flags = guard (fcntl(socket_fd, F_GETFL)፣ "የፋይል ባንዲራዎችን ማግኘት አልተቻለም"፤ ጠባቂ (fcntl(ሶኬት_fd፣ F_SETFL፣ ባንዲራዎች | O_NONBLOCK)፣ "አልቻለም አዘጋጅ የፋይል ባንዲራዎች");

የሶኬት ማገድ ምንድነው?

ሀ ሶኬት ውስጥ ሊሆን ይችላል" የማገድ ሁነታ "ወይም" አለማገድ ሁነታ " ተግባራት ሶኬቶች ውስጥ ማገድ (ወይም የተመሳሰለ) ሁነታ ተግባራቸውን እስኪጨርሱ ድረስ አይመለሱ. ይህ ይባላል ማገድ ምክንያቱም ሶኬት ጥሪው እስኪመለስ ድረስ ሥራው የተጠራው ምንም ነገር ማድረግ አይችልም - ታግዷል - ጥሪው እስኪመለስ ድረስ።

የሚመከር: