HWzoneHWzoneHWzone
  • ראשי
  • כתבות פופולריות
  • הגדרת התראות
  • מחשבים
    מחשבים
    הצג עוד
    כתבות מובילות
    משטח משלוח של כרטיסי מסך יוקרתיים במחסן מטענים בנמל תעופה, עם אריזות חסרות וניילון עטיפה קרוע
    חצי מיליון דולר נעלמו בשדה התעופה: שני משטחים של RTX 5090 אבדו
    20/10/2026
    הדרך להפסיק לשלם ולקחת בעלות: בנינו שרת AI מפלצתי מקומי
    22/08/2026
    מעבד שרתים גדול מועבר למגש בדיקה במפעל שבבים, כשמעבדי מחשבים ניידים ממתינים ברקע
    אינטל מעדיפה שרתים על מחשבים אישיים ומשנה את תוכניות הייצור
    02/11/2026
    כתבות אחרונות
    מבצעי נובמבר 2026: שבעה מסכי מחשב שבאמת ירדו במחיר
    12/11/2026
    אחרי 31 שנה: Windows 11 תאפשר להשתיק את חלונית Sticky Keys
    10/11/2026
    20 שנה ל-GeForce 8800 GTX: הדמו דורש לפחות RTX 4070
    10/11/2026
    AMD מאשרת באג ב-Radeon: הדרייבר כותב ל-SSD גם במנוחה
    09/11/2026
  • גאדגטים
    גאדגטים
    הצג עוד
    כתבות מובילות
    ניסיתי סמארטפון מתקפל בפעם הראשונה - התרשמויות משימוש Galaxy Z Fold8
    27/09/2026
    שחזור דיגיטלי של ה-iPod המקורי משנת 2001 מופיע בתוך דף אינטרנט במחשב נייד
    אפל מחזירה את ה-iPod המקורי לחיים, ומחביאה אותו באתר שלה
    25/10/2026
    הדמיה של מערכת הבית החכם החדשה של אפל עם מסך HomePad, רמקול HomePod mini ומזרים Apple TV 4K
    אפל חוזרת לסלון: שלושה מוצרים חדשים בדרך, כולל מסך חכם שיתחרה באמזון ובגוגל
    10/10/2026
    כתבות אחרונות
    אחרי שש שנות עיכוב: אמזון משיקה רחפן אבטחה ביתי ב-250 דולר
    11/11/2026
    סמארטפון חדש עם RAM משומש: עד 9% מהמכשירים ב-2027
    10/11/2026
    אינסטגרם רוצה להחליף את תוכנת העריכה שלכם, והיא מתחילה במק
    07/11/2026
    אחרי עשור: Bluetooth מעלה את המהירות המרבית כמעט פי ארבעה
    06/11/2026
  • גיימינג
    גיימינג
    הצג עוד
    כתבות מובילות
    קונסולת PlayStation 5 לצד מסך המציג משחקי PC בתוך ממשק הקונסולה באמצעות Playden
    בלי מחשב ובלי סטרימינג: משחקי PC רצים ישירות על PlayStation 5
    27/10/2026
    המחשה של לוח אם בקונסולת משחקים עתידית עם שבבי זיכרון ואחסון חשופים
    ה-PlayStation 6 עשויה לעלות יותר מ-1,000 דולר
    20/10/2026
    קונסולת Xbox One ותיקה מחוברת לטלוויזיה המציגה משחק מודרני בעולם פתוח באמצעות הזרמה מהענן
    קונסולה מ-2013 תריץ את GTA 6, אבל מחשב גיימינג לא
    11/11/2026
    כתבות אחרונות
    קונסולה מ-2013 תריץ את GTA 6, אבל מחשב גיימינג לא
    11/11/2026
    GTA 6 מוכן להורדה, אבל שחקני הקונסולות יסתפקו ב-30 FPS
    11/11/2026
    שבועיים להשקה: 39 תמונות חדשות מציגות את העולם של GTA 6
    06/11/2026
    סיכום השבוע: אינטל, Claude ועוד
    06/11/2026
  • טכנולוגיה
    טכנולוגיה
    הצג עוד
    כתבות מובילות
    משאית הובלה מסחרית רגילה ועליה משטחים של חומרת מחשוב יקרה, להמחשת גניבת משלוח NVIDIA בשווי 11.4 מיליון דולר
    משאית אספה חומרה של NVIDIA ב-11.4 מיליון דולר ונעלמה
    07/11/2026
    מחשב נייד המריץ מערכת הפעלה ניסיונית שפותחה באמצעות סוכני בינה מלאכותית של Claude Fable 5.2
    אלף סוכני Claude בנו מערכת הפעלה בשמונה ימים
    10/11/2026
    Google's Gemini 4 Carbon Tops Every Other Model In All But Two Of Google's Benchmarks, Scoring 88.2 Percent On SEC-bench Pro Vulnerability Discovery
    גוגל מציגה את Gemini 4 Carbon: ראשון בדירוג, סגור לציבור
    29/10/2026
    כתבות אחרונות
    רומן וחשד לריגול: NVIDIA נתבעת אחרי אובדן 190 מיליארד דולר
    11/11/2026
    10,000 ארונות NVIDIA בחלל עד 2028: התחזית החדשה ל-SpaceX
    11/11/2026
    אלף סוכני Claude בנו מערכת הפעלה בשמונה ימים
    10/11/2026
    מנכ"ל אפל לא מסתפק בסירי החדשה: דורש סוכן AI עצמאי
    10/11/2026
  • ביקורות
    ביקורות
    הצג עוד
    כתבות מובילות
    הדרך להפסיק לשלם ולקחת בעלות: בנינו שרת AI מפלצתי מקומי
    22/08/2026
    ניסיתי סמארטפון מתקפל בפעם הראשונה - התרשמויות משימוש Galaxy Z Fold8
    27/09/2026
    מחשב ASUS Ascent GX10 מבוסס NVIDIA DGX Spark בסקירה: דמוקרטיזציה של מודלים מקומיים
    04/10/2026
    כתבות אחרונות
    ככה הגדרתי סביבת עבודה עבור שרת AI מפלצתי מקומי מבוסס Intel ARC
    03/11/2026
    מחשב ASUS Ascent GX10 מבוסס NVIDIA DGX Spark בסקירה: דמוקרטיזציה של מודלים מקומיים
    04/10/2026
    ניסיתי סמארטפון מתקפל בפעם הראשונה - התרשמויות משימוש Galaxy Z Fold8
    27/09/2026
    GIGABYTE GAMING A16 עם RTX 5060 - מה תקבלו בקטגוריה הזולה של מחשבי גיימינג ניידים?
    12/09/2026
  • ספיישלים
    • CES
      • CES 2026
      • CES 2025
      • CES 2024
      • CES 2023
      • CES 2022
      • CES 2020
      • CES 2019
      • CES 2018
      • CES 2017
      • CES 2016
      • CES 2015
      • CES 2013
      • CES 2012
      • CES 2011
      • CES 2009
    • Computex
      • Computex 2019
      • Computex 2018
      • Computex 2016
      • Computex 2014
      • Computex 2013
      • Computex 2012
      • Computex 2011
      • Computex 2010
      • Computex 2009
      • Computex 2008
      • Computex 2007
    • E3 2016
    • עשור לאתר המחשבים
    • CeBIT 2008
    • CeBIT 2007
  • פורומים
  • זכרונות
  • הפיד שלי
  • ניהול העדפות
  • ערוצים פרסומיים
עקבו אחרינו ברשתות
  • אודות האתר
  • צרו קשר
  • פרסם אצלנו
  • תנאי שימוש ומדיניות פרטיות
  • הצהרת נגישות
בקריאה עכשיו: מדריך תקשורת באמצעות Net.
HWzoneHWzone
  • ראשי
  • כתבות פופולריות
  • הגדרת התראות
  • מחשבים
  • גאדגטים
  • גיימינג
  • טכנולוגיה
  • ביקורות
  • ספיישלים
    • CES
    • Computex
    • E3 2016
    • עשור לאתר המחשבים
    • CeBIT 2008
    • CeBIT 2007
  • פורומים
  • זכרונות
עקבו אחרינו
  • אודות האתר
  • צרו קשר
  • פרסם אצלנו
  • תנאי שימוש ומדיניות פרטיות
  • הצהרת נגישות
טכנולוגיהמדריכים

מדריך תקשורת באמצעות Net.

עדכון אחרון: 03/08/2014 בשעה 03:17
03/10/2011
45 דקות קריאה
שיתוף
רוצים לראות יותר מ-HWzone בתוצאות של Google?הוסיפו אותנו כמקור מועדף ב-Google
עקבו אחרינו ב-Googleהוסיפו את HWzone כמקור מועדף
מתחילים בתכנות
 
תחילה, נוריד את קובצי תוכנת הצ'אט, על מנת שנוכל לעשות בקוד המקור שלה שימוש במקביל לתכנות שלנו. קובצי התוכנה זמינים להורדה בקישור הבא.
חלצו את הקבצים מתוך ה-ZIP ופתחו את הקובץ ChatSolution.sln. לאחר מכן לחצו על הפרוייקט ChatProtocol ולאחר מכן על ChatProtocol.cs.
 
 

כפי שכבר צויין, בפרוטוקול ה-TCP קיים שרת ולקוח, והלקוח מתחבר לשרת דרך פורט מסויים אשר נקבע. עלינו לכתוב שלושה פרוייקטים שונים: תוכנת השרת, תוכנת הלקוח ופרוטוקול ההודעות (ספריית DLL). פרוטוקול ההודעות יופיעו ב-DLL, כך ששתי התוכנות האחרות יוכלו להשתמש בפונקציות הקיימות בו בצורה משותפת, ללא צורך בכתיבת הקוד מחדש. ניתן ללמוד על יצירת DLL באמצעות C# בקישור-הבא.
 
ראשית, נתחיל עם כתיבת ספריית פרוטוקול ההודעות. לספרייה זו נקרא ""ChatProtocol ובתוך ספרייה זו ניצור מחלקה בשם ChatMessage"". מחלקה זו תתאר הודעה המועברת בין שני הצדדים (חבילת המידע). מחלקה זו תכיל מספר תכונות (משתנים):
 
NickName - הכינוי של מי ששלח את ההודעה (מחרוזת).
Message - תוכן ההודעה (מחרוזת).
BytesCount - מספר הבייטים של כל ההודעה (מספר שלם).
IsMessageValid - משתנה בוליאני של אמת ושקר עבור אם ההודעה תקפה, כלומר שהבייטים שניתנו אכן מכילים כינוי ותוכן.
 
מחלקה זו מכילה את הקבוע הבא
 
MinimumBytes - מספר הבייטים שהודעה ריקה מכילה. הודעה ריקה תמיד תכיל 8 בייטים מפני שהכינוי והתוכן ריקים. התכונה IsMessageValid"" תהיה אמת רק כאשר מספר הבייטים יהיה גדול מקבוע זה - כך אנו יודעים שההודעה ששלחנו אכן תקפה ולא ריקה מתוכן.
 
בנוסף, המחלקה מכילה את המשתנה הסטטי הבא:
 
ProtocolEncoding - הקידוד שבו נשתמש בכדי להמיר מחרוזות לבייטים. קידוד היא צורה מסויימת שבה נרצה לתאר תווים במחרוזת. אנו משתמשים בקידוד מסוג ASCII, לכן ערכו של משתנה זה יהיה שווה ל-System.Text.ASCIIEncoding.ASCII.
 
יחד עם אלו, המחלקה מכילה את הפונקציות הבאות:
 
GetBytes - פונקציה זו מחזירה לנו מערך של בייטים אשר נרצה לשלוח לצד השני. מערך הבייטים יתאר את אובייקט ה-ChatMessage. אנו מעבירים בין שני הצדדים זרם של בייטים ולכן עלינו להמיר את ההודעה למערך של בייטים.
FromBytes - פונקציה סטטית, אשר הופכת מערך של בייטים לאובייקט ChatMessage. היא מקבלת מערך של בייטים (data) ופרמטר המורה לה מהיכן להתחיל לקרוא את האובייקט (Offset).
 
הפונקציה GetBytes מחזירה מערך של בייטים מאובייקט ChatMessage, בעוד הפונקציה FromBytes מחזירה אובייקט ChatMessage מתוך מערך של בייטים. במילים אחרות, שתי הפונקציות עושות פעולה הפוכה אחת מהשניה: המרה מפורמט האחד אל משנהו. כפי שהזכרנו, במחלקה זו שני הצדדים הולכים להשתמש, לכן עלינו להפוך אותה לקובץ DLL.
 
כעת נעבור לתוכנות צד השרת והלקוח. תוכנת צד השרת והלקוח יראו אותו הדבר, כאשר ההבדל היחיד הוא שתוכנת הלקוח תכיל חלון נוסף אשר יבקש מן המשתמש להקליד את הכינוי וכתובת הIP- של השרת המרוחק.
 
ריבוי הליכים
 
בשני הצדדים אנו נעשה שימוש בשיטה הידועה בשם "Multi-threading". על מנת להסביר שיטה זו נשתמש בדוגמה הבאה: כאשר הקוד שלנו נתקע בלולאה מסויימת, ממשק התוכנה שלנו לא מגיב. למה בעצם זה קורה? כאשר התוכנה שלנו נתקעת על שורת קוד מסויימת, או בתוך לולאה, ממשק התוכנה לא יכול להגיב לשום דבר, זאת מפני שאותו ההליך (ההליך הראשי של התוכנה) האחראי לקבל קלט מן המשתמש לא פנוי, שכן הוא עסוק בלעבד את הקוד הקודם שהמשתמש נתן לו.
 
אז איך בעצם נגרום לתוכנה שלנו להגיב גם כאשר היא תקועה בתוך לולאה? התשובה לכך היא פשוטה: ריבוי הליכים (Multi-threading). כמו שב-Windows יש לנו מספר תהליכים העובדים בנפרד, גם אם האחד נתקע השני ימשיך לעבוד. כך יש לנו גם הליכים (Threads), כאשר בתוך תהליך (Process) יש לנו מספר הליכים. ההליך העיקרי הינו הליך ה-GUI (ממשק המשתמש). כאשר אנו כותבים קוד אנו כותבים אותו ישירות בהליך הראשי של התוכנה, אלא אם כן ציינו אחרת. כל ההליכים יכלים לגשת לזיכרון המשותף של התוכנה (למשתנים הגלובליים של התוכנה), בניגוד לתהליכים שלא יכלים לשתף זיכרון אחד עם השני.
 
בעת שימוש בשיטה זו, עדיין ישנה נקודה בעייתית: הליך שהוא אינו ההליך הראשי לא יכול לבצע שינויים בממשק המשתמש. במילים אחרות, הוא אינו מסוגל לדוגמה לשנות את רקע החלון, לשנות טקסט בתוך תיבת הטקסט או לצייר בתוך הממשק. מה עלינו לעשות במצב כזה? קיימות מספר שיטות לבצע זאת, אך במדריך זה נסביר רק על אחת מהן. להלן השיטה הנפוצה: ניצור מתודה אשר אחראית על עדכון ממשק התוכנה, וכאשר אחד מן ההליכים קורא למתודה זו, נבדוק בתוך המתודה אם ההליך אשר קרא לה הוא ההליך הראשי. במידה וכן, נקרא לאותה המתודה שוב כשהפעם נגיד להליך הראשי לבצע אותה.
 
אז למה בעצם אנחנו צריכים ריבוי תהליכים בתוכנות הצ'אט שלנו? התשובה לכך היא שהתוכנה שלנו תמיד תבדוק אם התקבל מידע חדש מן הצד שני. פעולה זו מתבצעת בתוך לולאה הנמשכת כל עוד קיימת תקשורת בין שני הצדדים. כל התקשורת שלנו תתבצע בהליך נפרד, והליך זה יעדכן את הממשק ברגע שהתקבלה הודעה חדשה.

העמוד הקודם123456העמוד הבא

הצטרפו לערוץ הטלגרם שלנו!

קבלו עדכונים שוטפים וחדשות מעולם הטכנולוגיה ישירות לטלפון שלכם.

הצטרפו עכשיו

היום לפני 5-22 שנים ב-HWzone: Nintendo Switch, Office בחינם ועוד
Claude מתחבר לבנק ומוצא חיובים שאפילו אתם פספסתם
סם אלטמן: ה-RAM במחשב שלכם מבזבז זכרון שיכל להיות בחוות שרתים
נטפליקס הופכת את PUBG לסדרה, ודונלד גלובר מקבל ארבעה תפקידים
אמזון מציגה את התשובה שלה לגוגל ולאפל עם חמישה מכשירים חדשים
תגיות:YouTubeאינטרנטמיקרוסופט
איך זה גורם לך להרגיש?
אהבתי!0
מצחיק!0
עצוב0
מופתע0
משועמם0
כועס0
טוען תגובות...

כתבות פופולריות

משאית הובלה מסחרית רגילה ועליה משטחים של חומרת מחשוב יקרה, להמחשת גניבת משלוח NVIDIA בשווי 11.4 מיליון דולר
משאית אספה חומרה של NVIDIA ב-11.4 מיליון דולר ונעלמה
07/11/2026
מחשב נייד המריץ מערכת הפעלה ניסיונית שפותחה באמצעות סוכני בינה מלאכותית של Claude Fable 5.2
אלף סוכני Claude בנו מערכת הפעלה בשמונה ימים
10/11/2026
משטח משלוח של כרטיסי מסך יוקרתיים במחסן מטענים בנמל תעופה, עם אריזות חסרות וניילון עטיפה קרוע
חצי מיליון דולר נעלמו בשדה התעופה: שני משטחים של RTX 5090 אבדו
20/10/2026
הדרך להפסיק לשלם ולקחת בעלות: בנינו שרת AI מפלצתי מקומי
22/08/2026
HWzoneHWzone
עקבו אחרינו
  • אודות האתר
  • צרו קשר
  • פרסם אצלנו
  • תנאי שימוש ומדיניות פרטיות
  • הצהרת נגישות