משיב מוביל
פרויקט צ'אט- ליטושים וכו' - הצילו

שאלה
-
תשובות
-
ליאור ערב טוב (זה ארוך :-) קרא בעיון ולעומק)
הקדמה:
היה הרבה יותר טוב אם היית מצליח להגדיר נקודו מסוימות על פי פרוייקטים שיש לך. למשל הנקודה שהעלת לגבי:
א. למה לא נשלחת הודעה שלוחצים סנד
ב. איך עושים שתשלח הודעה שמישהו מתחבר או מתנתקוכמובן לקשר את זה לפרוייקט המתאים. אחרי הכל אנשים לא צריכים להשקיע זמן מיותר במעבר על כל הפרוייקט :-)
אני אנסה לעזור מעט על ידי הצגת כמה נדוקות למחשבה/ביצוע ואני מקווה שהן יעזרו. נסה למקד אותנו לגבי בעיות שעדיין עולות בצורה ברורה וכמה שיותר קצר.
* דרך אגב האפיון שקיבלת יפה מאוד
נקודות כלליות:
1. משום מה פתחת פרוייקטים רבים עבור כל טופס. אפליקציה אחת של הלקוח לא אמורה להיות בנויה מ 2 אפליקציות. כל פרוייקט מתורגם בסיום לאפליקציה בדרך כלל.
שים לב גם לאפיון שיש לך ולהמלצות. האפליקציות שאתה צריך לפי האפיון הן בסך הכל שלושה:
* תוכנת הלקוח
* ספריית מחלקות ההודעות
*תוכנת השרת (אני הייתי מציע על 2 תוכנות בשרת SERVICE + GUI ראה הסבר בהמשך)תעבור על הפרוייקטים שלך ותתחיל לסדר את מה שכתבת בחלוקה נכונה כזו וזה כבר ייתן לך סדר להמשך (אני אעזור בהמשך כמובן אם צריך)
הערה: ניתן להיסתפק ב 2 פרוייקטים אחד עבור הלקוח ואחד עבור השרת אבל נוח בדרך כלל לבנות פרוייקט נפרד עבור כל המחלקות השונות (וכמו שכתבתי האפיון שנתנו לך טוב וזה ההמלצה שלהם גם)... במקרה זה בשאר הפרוייקטים יש לצרף את הפרוייקט של ספריית המחלקות
2. אחרי שהפרויקטים ממסודרים בצורה כזו הנקודות הבאות יהיו רלוונטיות
א. למה לא נשלחת הודעה שלוחצים סנד: כשלוחצים על הכפתור שליחה עלייך להעביר אינפורמציה לתוכנת השרת. לא תוכל לבדוק חלק זה לפני שתוכנת השרת עובדת טוב כי אתה צריך להאזין למה שמגיע לשרת.
אני מציע לפני שאתה מפתח את כל התוכנה לבדוק שאתה יודע ומצליח לשלוח הודעה בתוכנת לקוח (תלא הודעה של צאט אלא תכין אפליקציה פשוטה קלה שלקוח עם כפתור אחד ששולח טקסט פשוט לשרת). כמו כן תכין תוכנה שרצה בשרת ויודעת לקבל הודעות שמגיעות אליה. את ההודעות שמקבלת התוכנה של השרת אתה לא מציג! זו תוכנה שעובדת ברקע גם כשאין משתמש רשום לשרת (SERVICE). מכיוון שאין לתוכנה חלון טופס תחשוב איזה פרוייקט בכלל מתאים לך לתוכנת השרת.
הערה חשובה! באפיון שיש לך יש בעיה קטנה והיא בעיניין הזה. למעשה לפי האפיטון אתה צריך תוכנה אחת לשרת עם GUI אבל אני ממליץ לפתח תוכנת שרת SERVICE ובניפרד תוכנה רגילה עם טופס לניהול מי שרשום. ז"א ה SERVICE מאזין ברקע כל הזמן ובצע את כל הפעולות. ה GUI נועד רק למנהל שנכנס לשרת לבדוק דברים וצריך להפעיל את התוכנה על מנת לבדוק אותם. ההחלטה שלך וניתן לבצע את זה בפרוייקט אחד.
רק אחרי שתצליח שתוכנה לקוח תדבר עם תוכנת שרת תעבור לפרוייקט עצמו.
ב. איך עושים שתשלח הודעה שמישהו מתחבר או מתנתק: כאשר מישהו מתחבר צריכה להישלח הודעה בדיוק כמו קודם מתוכנת הלקוח אל תוכנת השרת (זו שעובדת ברקע)
3. שמירת היסטוריה: על מנת לשמור היסטוריה אפשר ללכת באחד משני כיוונים
א. שמירה בצורה קשיחה במסד נתונים או בקובץ לוג (נראה לי הדרך המומלצת עבורך כרגע)
ב. שמירה של הנתונים בזכרון: מכיוון השרישה היא היסטוריה רק מאז שהשרת הופעל אז ניתן לשמור בכל מופע של מחלקה מסוג אוסף כמו LIST את כל הדברים שצריך לשמור בהיסטוריה. אפשר להגדיר פשוט משתנה אפליקציה שמתחיל אוטומטית על ידי הבנאי ברגע שהאפליקציה של השרת (ה SERVICE) עולה ואז מוגדרת הרשימה של ההיסטוריה ובכל פעם שיש הודעה מוסיפה על הרשימה שהוגדרה
++++++++++++
נסה לעבור על הדברים ובעיקר להגיע למצב שסעיף 2 (לפני 1 ) עובד ואתה שולט ביצירת 2 תוכנות אחת בשרת ואחת בלקוח שיודעות לדבר.
אתה יכול להעזר בקישור הבא:
http://www.scitechexplained.com/2011/01/c-udp-datagram-client-and-server-on-the-local-computer/רק אחרי שאתה שולט בהעברת ההודעות תחזור ותעבור לסעיף 1
סיים את סעיף 1 (חלוקה נכונה לשלושה פרוייקים) ואז אחרי שסעיף 1+2 מוכנים תנסה להמשיך ותחזור עם שאלות שעולות
- סומן כתשובה על-ידי Ido Flatow. _Moderator יום רביעי 01 פברואר 2012 07:54
כל התגובות
-
-
ניסיתי וניסיתי אבל אני תקוע לא יודע איך להמשיך אשמח אם תיתן לי כיוון והסבר קצר ותודה מראש
אני לא יודע אם המסג' ליב טוב ואיך להשתמש בו
אני לא יודע מתי להוסיף גם קליינט לקולקשיין וגם לא איך להוסיף את מי שהתחבר לפורם שמציג את ההיסטוריה
ולמה לא נשלחת הודעה שלוחצים סנד ואיך עושים שתשלח הודעה שמישהו מתחבר או מתנתק ומאיפה
אשמח לעזרה כי אני תקוע מספר ימים
-
ליאור ערב טוב (זה ארוך :-) קרא בעיון ולעומק)
הקדמה:
היה הרבה יותר טוב אם היית מצליח להגדיר נקודו מסוימות על פי פרוייקטים שיש לך. למשל הנקודה שהעלת לגבי:
א. למה לא נשלחת הודעה שלוחצים סנד
ב. איך עושים שתשלח הודעה שמישהו מתחבר או מתנתקוכמובן לקשר את זה לפרוייקט המתאים. אחרי הכל אנשים לא צריכים להשקיע זמן מיותר במעבר על כל הפרוייקט :-)
אני אנסה לעזור מעט על ידי הצגת כמה נדוקות למחשבה/ביצוע ואני מקווה שהן יעזרו. נסה למקד אותנו לגבי בעיות שעדיין עולות בצורה ברורה וכמה שיותר קצר.
* דרך אגב האפיון שקיבלת יפה מאוד
נקודות כלליות:
1. משום מה פתחת פרוייקטים רבים עבור כל טופס. אפליקציה אחת של הלקוח לא אמורה להיות בנויה מ 2 אפליקציות. כל פרוייקט מתורגם בסיום לאפליקציה בדרך כלל.
שים לב גם לאפיון שיש לך ולהמלצות. האפליקציות שאתה צריך לפי האפיון הן בסך הכל שלושה:
* תוכנת הלקוח
* ספריית מחלקות ההודעות
*תוכנת השרת (אני הייתי מציע על 2 תוכנות בשרת SERVICE + GUI ראה הסבר בהמשך)תעבור על הפרוייקטים שלך ותתחיל לסדר את מה שכתבת בחלוקה נכונה כזו וזה כבר ייתן לך סדר להמשך (אני אעזור בהמשך כמובן אם צריך)
הערה: ניתן להיסתפק ב 2 פרוייקטים אחד עבור הלקוח ואחד עבור השרת אבל נוח בדרך כלל לבנות פרוייקט נפרד עבור כל המחלקות השונות (וכמו שכתבתי האפיון שנתנו לך טוב וזה ההמלצה שלהם גם)... במקרה זה בשאר הפרוייקטים יש לצרף את הפרוייקט של ספריית המחלקות
2. אחרי שהפרויקטים ממסודרים בצורה כזו הנקודות הבאות יהיו רלוונטיות
א. למה לא נשלחת הודעה שלוחצים סנד: כשלוחצים על הכפתור שליחה עלייך להעביר אינפורמציה לתוכנת השרת. לא תוכל לבדוק חלק זה לפני שתוכנת השרת עובדת טוב כי אתה צריך להאזין למה שמגיע לשרת.
אני מציע לפני שאתה מפתח את כל התוכנה לבדוק שאתה יודע ומצליח לשלוח הודעה בתוכנת לקוח (תלא הודעה של צאט אלא תכין אפליקציה פשוטה קלה שלקוח עם כפתור אחד ששולח טקסט פשוט לשרת). כמו כן תכין תוכנה שרצה בשרת ויודעת לקבל הודעות שמגיעות אליה. את ההודעות שמקבלת התוכנה של השרת אתה לא מציג! זו תוכנה שעובדת ברקע גם כשאין משתמש רשום לשרת (SERVICE). מכיוון שאין לתוכנה חלון טופס תחשוב איזה פרוייקט בכלל מתאים לך לתוכנת השרת.
הערה חשובה! באפיון שיש לך יש בעיה קטנה והיא בעיניין הזה. למעשה לפי האפיטון אתה צריך תוכנה אחת לשרת עם GUI אבל אני ממליץ לפתח תוכנת שרת SERVICE ובניפרד תוכנה רגילה עם טופס לניהול מי שרשום. ז"א ה SERVICE מאזין ברקע כל הזמן ובצע את כל הפעולות. ה GUI נועד רק למנהל שנכנס לשרת לבדוק דברים וצריך להפעיל את התוכנה על מנת לבדוק אותם. ההחלטה שלך וניתן לבצע את זה בפרוייקט אחד.
רק אחרי שתצליח שתוכנה לקוח תדבר עם תוכנת שרת תעבור לפרוייקט עצמו.
ב. איך עושים שתשלח הודעה שמישהו מתחבר או מתנתק: כאשר מישהו מתחבר צריכה להישלח הודעה בדיוק כמו קודם מתוכנת הלקוח אל תוכנת השרת (זו שעובדת ברקע)
3. שמירת היסטוריה: על מנת לשמור היסטוריה אפשר ללכת באחד משני כיוונים
א. שמירה בצורה קשיחה במסד נתונים או בקובץ לוג (נראה לי הדרך המומלצת עבורך כרגע)
ב. שמירה של הנתונים בזכרון: מכיוון השרישה היא היסטוריה רק מאז שהשרת הופעל אז ניתן לשמור בכל מופע של מחלקה מסוג אוסף כמו LIST את כל הדברים שצריך לשמור בהיסטוריה. אפשר להגדיר פשוט משתנה אפליקציה שמתחיל אוטומטית על ידי הבנאי ברגע שהאפליקציה של השרת (ה SERVICE) עולה ואז מוגדרת הרשימה של ההיסטוריה ובכל פעם שיש הודעה מוסיפה על הרשימה שהוגדרה
++++++++++++
נסה לעבור על הדברים ובעיקר להגיע למצב שסעיף 2 (לפני 1 ) עובד ואתה שולט ביצירת 2 תוכנות אחת בשרת ואחת בלקוח שיודעות לדבר.
אתה יכול להעזר בקישור הבא:
http://www.scitechexplained.com/2011/01/c-udp-datagram-client-and-server-on-the-local-computer/רק אחרי שאתה שולט בהעברת ההודעות תחזור ותעבור לסעיף 1
סיים את סעיף 1 (חלוקה נכונה לשלושה פרוייקים) ואז אחרי שסעיף 1+2 מוכנים תנסה להמשיך ותחזור עם שאלות שעולות
- סומן כתשובה על-ידי Ido Flatow. _Moderator יום רביעי 01 פברואר 2012 07:54