GammaCyber

כתיבת קוד — שיעור 38

Sockets ורשת ב-C

כל 1 משימות הקוד שנשמרו מהשיעור מופיעות כאן, עם דרישות, דוגמאות וקוד פתיחה. אפשר לכתוב פתרון בעורך המקומי וללחוץ על „בדיקת AI” לקבלת ציון, רמזים והערות.

T3 · בינוני350 נק'~22 דק'algorithmic
פרסור כותרת פרוטוקול רשת
ממש parse_header(data) לכותרת רשת. data הוא רשימת בתים: בית 0 = version, בית 1 = type, בתים 2–3 = length (unsigned 16-bit, big-endian / network byte order), ואחריהם length בתי payload. החזר מילון {'version','type','length','payload'}. אם הכותרת קצרה מדי או ה-payload קטום → None.
דוגמאות
parse_header([1,2,0,3,10,20,30]) → {'version':1,'type':2,'length':3,'payload':[10,20,30]}
פתרון-ייחוס פרסור כותרת פרוטוקול רשת ›
def parse_header(data: list): if len(data) < 4: return None ver, typ = data[0], data[1] length = (data[2] << 8) | data[3] # אורך big-endian (16 סיביות) if len(data) < 4 + length: return None # קטום return {'version': ver, 'type': typ, 'length': length, 'payload': data[4:4 + length]}
הפתרון נשמר מקומית אוטומטית.