שלח/קבל send/receive - איך זה עובד? ("בתיאוריה") - טכנולוגיית מידע - IT - HWzone פורומים
עבור לתוכן
  • צור חשבון

שלח/קבל send/receive - איך זה עובד? ("בתיאוריה")


Judas Iscariot

Recommended Posts

השאלה היא בעצם מבחינה "אלגוריתמית", איך הפקודה "יודעת" אילו מיילים להוריד לקליינט מהשרת ואילו לא?

אני אתן דוגמא:

הקליינט ריק, בשרת 3 הודעות

שלח/קבל יוריד את 3 ההודעות לקליינט

התקבלה הודעה חדשה, ועכשיו אנחנו במצב:

בקליינט 3 הודעות, בשרת 4 הודעות

שלח/קבל יוריד רק את ההודעה החדשה.

השאלה שלי היא, איך?

האם נשמר record בתוך התוכנה של מתי הוא ביצע עידכון אחרון ולכן הוא יקבל רק פריטים שנוספו לאחר חתימת זמן זו?

האם הקליינט עובר על כל הheaders בשרת ובקליינט, ומה שהוא מוצא בשרת ללא התאמה בקליינט, הוא מוריד?

משהו אחר?(לא מצליח לחשוב על שיטה אחרת, בטח יש עוד מיליון)

חיפוש בגוגל העלה חרס. רק מדריכים איך להגדיר שלח/קבל בoutlook :kopfpatsch:

תודה מראש לעוזרים!

קישור לתוכן
שתף באתרים אחרים

מה שקורה הוא שיש buffer של הודעות במחשב.

בוא נגיד שהשרת והקליינט מדברים בפרוטוקול tcp.

הקליינט מתחבר לשרת באמצעות bind, listen, accept

ומהרגע הזה כל הודעה שהשרת ישלך נשמרת ב-buffer על המחשב של הקליינט (ניתן לחשוב על ה-buffer הזה כמערך בזיכרון למרות שזה לא ביודק כך)

כשהקליינט מבצע קבל הוא קורא מה-buffer (או מהמערך) ומרוקן את מה שהוא קרא.

ה-buffer הוא בעצם stack של הודעות שנשמרות על הקליינט וזהו, כל מה ש-recv עושה זה לקרוא מהstack.

אותה פעולה קוראת בקלט\פלט - אתה כותב משהו במקלדת, מה שכתבת נשמר ב-buffer שנקרא stdin וכשאתה עושה read אז אתה קורא מה-buffer stdin.

אם אתה רוצה ללמוד עוד על רשתות אני ממליץ לך לקרוא את הספר

Beej's Guide to Network Programminghttp://beej.us/guide/bgnet/

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...