תרגול חיבור וזרם של מידע¶
תרגיל ראשון - חלוקת שליחה¶
שנו את הלקוח כך שישלח כל byte של הheader בקריאה נפרדת, ואת הגוף במקטעים של עד שלושה bytes. אל תשנו את השרת. בדקו שההודעה מתקבלת בשלמותה, והסבירו מדוע אסור לכתוב assert שמחייב את השרת לקבל בדיוק אותו מספר מקטעים.
הוסיפו מונה של מספר קריאות recv ושל מספר bytes בכל קריאה. תעדו תצפית, אבל אל תהפכו תוצאה של הרצה אחת לחוזה של הרשת.
תרגיל שני - הודעה קטועה¶
צרו שלושה מצבי לקוח: ניתוק לפני כל מידע, שליחת שני bytes מהheader בלבד, ושליחת header שמצהיר על עשרה bytes עם גוף באורך שלושה. בכל מצב סיימו את צד השליחה באופן תקין. הסבירו איזו תוצאה צפויה בשרת ולמה המקרים אינם זהים.
תרגיל שלישי - מחכים אחד לשני¶
הסירו בלקוח את end_sending שלפני קריאת התשובה. הריצו מול השרת המקורי ותעדו איפה כל צד ממתין. הציעו פרוטוקול שתומך בכמה הודעות באותו חיבור בלי להסתמך על half-close לכל הודעה, והגדירו כיצד נסגרת שיחה כזאת.