שקע הוא אחד הטכנולוגיות הבסיסיות ביותר של תכנות רשת מחשבים. שקעים מאפשרים ליישומי תוכנה ברשת לתקשר באמצעות מנגנונים סטנדרטיים המובנים בחומרת הרשת ומערכות ההפעלה.
למרות שזה אולי נשמע כמו רק עוד תכונה של פיתוח תוכנה לאינטרנט, הטכנולוגיה socket קיים הרבה לפני האינטרנט. וגם, רבים מהיישומים הפופולריים ביותר של היום ברשת התוכנה להסתמך על שקעים.
מה שקעים יכול לעשות עבור הרשת שלך
שקע מייצג חיבור יחיד בין שתי חתיכות של תוכנה בדיוק (מה שנקרא נקודה לנקודה חיבור). יותר משני חלקים של תוכנה יכולים לתקשר עם הלקוח / שרת או מערכות מבוזרות באמצעות שקעים מרובים. לדוגמה, דפדפני אינטרנט רבים יכולים לתקשר בו זמנית עם שרת אינטרנט יחיד באמצעות קבוצת שקעים שבוצעו בשרת.
תוכנת Socket מבוססת בדרך כלל על שני מחשבים נפרדים ברשת, אך ניתן להשתמש בהם גם לתקשורת מקומית ( Interprocess ) במחשב יחיד. שקעים הם דו - כיווני , כלומר שכל צד של החיבור מסוגל לשלוח ולקבל נתונים. לפעמים יישום אחד כי יוזם תקשורת נקרא "הלקוח" והשני יישום "שרת", אבל זה המינוח מוביל לבלבול עמיתים כדי להציץ ברשת ויש להימנע בדרך כלל.
Socket APIs וספריות
מספר ספריות המפעילות ממשקי תכנות יישומים סטנדרטיים (API) קיימות באינטרנט. החבילה המיינסטרים הראשונה - ספריית ברקלי סוקט עדיין בשימוש נרחב במערכות UNIX. ממשק API נפוץ נוסף הוא ספריית Windows Sockets (WinSock) עבור מערכות ההפעלה של Microsoft. יחסית לטכנולוגיות מחשב אחרות, ממשקי ה- API של Socket הם בשלים למדי: WinSock נמצא בשימוש מאז 1993 ובשקעי ברקלי מאז 1982.
ה- API של ה- Socket הוא קטן יחסית ופשוט. רבים מן הפונקציות דומות לאלה המשמשים בקלט קלט / פלט קובץ כגון לקרוא(), לכתוב (), ו סגור (). הקריאה בפועל לתפקוד תלויה בשפת התכנות ובספריית ה- socket שנבחרה.
סוגי ממשק Socket
ממשקי Socket ניתן לחלק לשלוש קטגוריות:
- זרם שקעים, הסוג הנפוץ ביותר, מחייב את שני הצדדים לתקשר ליצור חיבור שקע, ולאחר מכן כל הנתונים המועברים דרך חיבור זה יובטח להגיע באותו סדר שבו הוא נשלח - מה שנקרא מודל תכנות מונחה קשר .
- תרשים שקעים מציעים "קשר פחות" סמנטיקה. עם חיבורי נתונים, החיבורים הם מרומזים ולא מפורשים כמו עם זרמים. כל צד פשוט שולח נתונים לפי הצורך ומחכה שהאחר יגיב; הודעות יכול ללכת לאיבוד שידור או קיבל מתוך הסדר, אבל זה באחריות היישום ולא את שקעים להתמודד עם בעיות אלה. יישום שקעי Datagram יכול לתת יישומים מסוימים להגביר את הביצועים וגמישות נוספת בהשוואה באמצעות שקעים זרם, להצדיק את השימוש שלהם במצבים מסוימים.
- הסוג השלישי של שקע - גלם socket - עוקפת את התמיכה המובנית בספריה לפרוטוקולים סטנדרטיים כמו TCP ו- UDP. שקעי גלם משמשים לפיתוח פרוטוקולים ברמה נמוכה.
תמיכה Socket בפרוטוקולי רשת
שקעי רשת מודרניים משמשים בדרך כלל בשילוב עם פרוטוקולי האינטרנט - IP, TCP ו- UDP. ספריות המיישמות שקעים עבור פרוטוקול אינטרנט משתמשים ב- TCP עבור זרמים, UDP עבור Datagrams ו- IP עצמו עבור שקעים גולמיים.
כדי לתקשר דרך האינטרנט, ספריות ה- socket של ה- IP משתמשות בכתובת ה- IP כדי לזהות מחשבים ספציפיים. חלקים רבים של האינטרנט לעבוד עם מתן שמות שירותים, כך משתמשים מתכנתים socket יכול לעבוד עם מחשבים לפי שם ( למשל , "thiscomputer.wireless.about.com") במקום כתובת ( למשל , 208.185.127.40). שקעי זרם ו - Datagram גם משתמשים במספרי יציאות IP כדי להבדיל בין יישומים מרובים זה מזה. לדוגמה, דפדפני אינטרנט באינטרנט יודעים להשתמש ביציאה 80 כברירת מחדל לתקשורת Socket עם שרתי אינטרנט.