האם החיבור חוסם?
האם החיבור חוסם?

וִידֵאוֹ: האם החיבור חוסם?

וִידֵאוֹ: האם החיבור חוסם?
וִידֵאוֹ: מדריך עקיפת החסימה באתר בדפדפן כרום במחשב 2024, נוֹבֶמבֶּר
Anonim

לְחַבֵּר הוא חסימה התקשר כברירת מחדל, אבל אתה יכול להפוך את זה ללא חסימה על ידי העברת דגל SOCK_NONBLOCK לשקע. לְחַבֵּר () חוסמים עד לסיום לחיצת יד תלת כיוונית של TCP. לחיצת יד בצד ההאזנה מטופלת על ידי מחסנית TCP/IP בקרנל ומסתיימת ללא הודעה על תהליך המשתמש.

באופן דומה, נשאל, מהו שקע חוסם ולא חוסם?

ב חסימה מצב, recv, שלח, התחבר (TCP בלבד) וקבל (TCP בלבד) שֶׁקַע קריאות API יהיו לַחסוֹם ללא הגבלת זמן עד לביצוע הפעולה המבוקשת. ב לֹא - חסימה במצב, פונקציות אלה חוזרות מיד. בחר צוואה לַחסוֹם עד ה שֶׁקַע מוכן.

מהי פונקציית חסימה? א פונקציית חסימה בעצם מחשב לנצח. זה מה שזה אומר חסימה . אַחֵר פונקציות חסימת יחכה ל-IO להתרחש. לא- חסימה מערכת IO פירושה א פוּנקצִיָה מתחיל פעולת IO, ואז הולך ללא פעיל ואז מטפל בתוצאה של פעולת IO כשהיא מתרחשת.

לאחר מכן, השאלה היא האם חסימת socket accept?

לְקַבֵּל () חוסם את המתקשר עד לחיבור. אם אין מקום פנוי להודעות ב- שֶׁקַע כדי להחזיק את ההודעה שתועבר, ואז send() בדרך כלל חוסם. אם אין הודעות זמינות ב- שֶׁקַע , שיחת ההחזר ממתינה להודעה שתגיע.

האם לבחור בלוק?

אם הארגומנט פסק זמן מצביע על אובייקט מסוג struct timeval שהאיברים שלו הם 0, בחר () לא לַחסוֹם . אם ארגומנט הזמן הקצוב הוא NULL, בחר () חוסם עד שאירוע גורם להחזרת אחת מהמסיכות עם ערך חוקי (שאיננו אפס).

מוּמלָץ: