עבר עריכה לאחרונה בתאריך 11.01.03 בשעה 17:02
כידוע לכם רוב תוכנות הצ'אט כתובות ב-++C או בג'אווה יש אפילו כאלו שצצות מדי פעם ב-FLASH , מעט תוכנות הצ'אט הכתובות ב-VB , מסיבות רבות כמובן (חוסר Threads) , פקד ה-WINSOCK הוא "לא מי יודע מה" נוח לניהול תוכנה כזו בויבי..כל עוד אנחנו רוצים לבנות תוכנת צאט מרובת משתמשים בהם כל אחד שולח הודעות לכולם ומקבל מכולם הבעייה היא פשוטה.
הצרות מתחילות מתי שאנחנו רוצים לבצע שליחה פרטית בין משתמש מחובר אחד לשני, אז אנו נתקלים בבעייה שאין אנו יודעים בדיוק למי בדיוק התכוון ה-SOCKET ששלח את ההודעה לשלוח את ההודעה (אני יוצא מנקודת הנחה שכולם מסכימים איתי שתוכנת SERVER חייבת לרוץ ולנתב את ההודעות)
כלומר ברגע שה-WINSOCK על השרת מקבל CONNECTION REQUEST השרת בעצם מקצה לחיבור זה עוד פקד WINSOCK שישמש למהלך ההתקשרות בין המשתמש לשרת, הבעייה שאין מעקב אחרי ה-SOCKETS הפתוחים ו-"איננו" יודעים בעצם למי הם שייכים... (כמובן שכל SOCKET שנפתח מעודכן בכמה נתונים על מבקש החיבור)
הצעות שקיבלתי לפתרון הבעייה כללו כמה דברים מענינים, אני לדוגמא פתרתי את הבעייה על ידי שימוש במערך שמכיל את כל ה-SOCKETS הפתוחים על השרת
והוא מתמלא על ידי שליחת Header ממבקש חיבור , Header שמכיל מזהה ייחודי
על כל לקוח , המזהים הנ"ל רשומים במסד נתונים (משם נשאב התא הראשון
במערך שלי המכיל את ה-ID'S של כל המשתמשים הרשומים לצ'אט)
אני לא אפרט כאן את כל התהליך , אני רק אומר שזה עובד מצויין וישנה שליחה פרטית בין לקוח ללקוח בין כל המשתמשים.
אבל אני עדיין לא מרוצה כל כך השימוש במערכים במיוחד ב-VB לא חביב עליי במיוחד.
אם מישהו הבין את מה שרשמתי לעיל ויש לו הצעות , אני אשמח לקבל.
עדן