פורסם 2006 בינואר 1619 שנים שלום אני עובד עם API Winsock ב VB6 ובניתי תוכנה שמתקשרת עם שרת, שולחת מידע ואמורה לקבל בחזרה מידע. הקטע שהיא צריכה לעשות את זה חצי מליון פעם (חצי מליון פעם לשלוח מידע וחצי מליון לקבל). אם אני עושה את זה עם סוקט אחד, זה לוקח שנים (כל פעם לשלוח מידע, לחכות שהמידע יתקבל, לסגור תסוקט, לפתוח מחדש.... בחישוב שלי זה יקח המון שעות). לכן רציתי לזרז תקצב, לא להכפיל פי 2 אלה פי 100, לכן ניסתי לעשות את זה עם מערך של 100 סוקטים, שכל אחד שולח מידע ומקבל, אב קיבלתי את השגיאה הבאה: --------------------------- Microsoft Visual Basic --------------------------- Compile error: Constants, fixed-length strings, arrays, user-defined types and Declare statements not allowed as Public members of object modules --------------------------- OK Help --------------------------- הוא אומר שאי אפשר לעשות מערך של סוקטים בגלל שהם פאבליק... 1.למה? (מתוך סקרנות, מה זה משנה) 2. מה אני עושה? לא בא לי להגדיר ידנית 100 סוקטים.... האם יש דרך לעקוף את זה? תודה
פורסם 2006 בינואר 1619 שנים למה שלא תנסה לשלוח את הכל דרך אותו חיבור?(הרי אתה מתחבר לשרת אחד)יצירת מערך, וסגירה ופתיחה יתן לך אותו זמן שליחה.
פורסם 2006 בינואר 1619 שנים מחבר אני לא יכול לשלוח הכל באותו חיבור כי כשאני יקבל את המידע יהיה בלאגן.... כי עבור כל מידע שאני שולח, אני צריך לקבל משהו ספיצי ואני לא יכול לערבב בניהם.לפי דעתי אתה טועה, יצירת מערך עם 100 סוקטים יעשו את העבודה הרבה יותר מהר מסוקט אחד.... הגיון פשוט....אז יש למישהו פיתרון איך אני יכול ליצור מערך עם הרבה סוקטים או אולי איך לזרז את הקצב בצורה אחרת?
פורסם 2006 בינואר 1619 שנים וואלה פעם עשיתי chat ב- VB שזה אותו פרנציפבינתיים כבר מזמן הסרתי את ה- VB מהמחשב שלי אז מה שאני מתאר לך זה ממה שאני זוכר מהראש :אחרי שאתה גורר פקד של Winsock32 אל הטופס ב- VBאתה ניגש אל חלון ה- Properties של הפקד בשם שלו אמור להופיע שם כמו winsock1 או משהו דומהעכשיו אתה משנה את השם שלו ל- winsock1)0) כלומר מוסיף סוגריים ואינדקס 0 או 1 , אני לא זוכר בדיוקואז אמורה להופיעה הודעה האם להפוך את הפקד למערך של פקדים האפליקציה של צד השרת אמורה להשתמש במופע אחד של winsock שנמצא תמיד במצב האזנה לדוגמא winsock(1)התפקיד שלו זה לקבל פניות וליצור winsock חדש עבור כל פניה חדשה של client למשל winsock(2)מעכשיו ואילך ה-client והשרת מדברים בינהם דרך winsock(2)ו-winsock(1) ממשיך להאזין כדי לקבל בקשות התקשרות חדשותבצד ה- client מספיק להשתמש ב- winsock אחד בלבד
פורסם 2006 בינואר 1619 שנים מחבר תודה על הנסיון לעזור, אבל רשמתי במפורש שאני משתמש בAPI WINSOCK, משמע שאני לא משתמש בפקד.התוכנה עובדת, אין בעיות חוץ מהזמן ריצה, אני יודע להפעיל את הסוקטים והכל, אבל רוצה לזרז את התהליך.בנוסף, אין לי שום בעיה בצד של השרת אז כל מה שרשמת היה די מיותר.לפחות ניסית.אם אין כאן מישהו שיודע, אולי תוכלו להפנות אותי לאיזה ערוץ במירק/פורום שיעזרו לי?
פורסם 2006 בינואר 1719 שנים א. אתה לא יכול להגדיר (לא יודע איך זה ב VB בדיוק), שהמשתנה הזה לא יהיה כחלק מ CLASS אלה משהו כללי/גלובלי בתוכנית בכלל ?ב. לא בטוח שפתיחת 100 סוקטים לאותו מקום זה חכם, למה פשוט לא לעשות פרוטוקול שיאפשר לך לשמור על הסדר בין שליחת הבקשות בו זמנית דרך אחד ?
פורסם 2006 בינואר 1719 שנים א. אתה לא יכול להגדיר (לא יודע איך זה ב VB בדיוק), שהמשתנה הזה לא יהיה כחלק מ CLASS אלה משהו כללי/גלובלי בתוכנית בכלל ?ב. לא בטוח שפתיחת 100 סוקטים לאותו מקום זה חכם, למה פשוט לא לעשות פרוטוקול שיאפשר לך לשמור על הסדר בין שליחת הבקשות בו זמנית דרך אחד ?אתה אמור לשנות את ה Index ב properties ולשנות את זה למספר הרצוי ואז אתה ניגש לזה winsock1(1);לדוגמאוזה אמור להיות הרבה יותר קל מאשר שימוש ב apis כמו שאתה משתמש היום
פורסם 2006 בינואר 1719 שנים מחבר IceBreak: זה מוגדר כמו שצריך, לא כחלק מ CLASS מסוים, זה גלובלי פומבי, בשביל שהמודל של הסוקטים יוכל לעשות בזה שימוש...מה הכוונה לעשות פרוטוקול? אני כותב רק את הצד של הלקוח, לא את השרת, אני עובד מול שרת שרץ כבר.UnPluggeD: כן, אפשר לעשות את זה אבל בסוקטים עם פקד וכמו שאמרתי רשמתי את זה עם API.אני יכול לשנות את זה לפקד אבל :1. זה עבודה ואני לא רוצה2. יש דרך לעשות את זה, כי הAPI אומר להיות יותר טוב מהפקד ואני רוצה לדעת איך, מתוך עניין.אם מישהו יודע איך או מכיר איזה מקור לידע (ערוץ במירק/קהילה) שיכתובתודה
פורסם 2006 בינואר 1819 שנים http://www.vbip.com/winsock-api/create-close-socket/create-close-socket-01.asphttp://www.vbip.com/winsock-api/default.asp
פורסם 2006 בינואר 1919 שנים IceBreak: זה מוגדר כמו שצריך, לא כחלק מ CLASS מסוים, זה גלובלי פומבי, בשביל שהמודל של הסוקטים יוכל לעשות בזה שימוש... מה הכוונה לעשות פרוטוקול? אני כותב רק את הצד של הלקוח, לא את השרת, אני עובד מול שרת שרץ כבר. UnPluggeD: כן, אפשר לעשות את זה אבל בסוקטים עם פקד וכמו שאמרתי רשמתי את זה עם API. אני יכול לשנות את זה לפקד אבל : 1. זה עבודה ואני לא רוצה 2. יש דרך לעשות את זה, כי הAPI אומר להיות יותר טוב מהפקד ואני רוצה לדעת איך, מתוך עניין. אם מישהו יודע איך או מכיר איזה מקור לידע (ערוץ במירק/קהילה) שיכתוב תודה תיצור איזה קלאס משלך שכל מה שיש בו זה את השליחה וכל השטיות וכל Events תיצור מערך מהקלאס שלך... ותפעיל אותו וככה תיהיה לך גישה מסודרת לכל אחד ואחד
פורסם 2006 בינואר 2219 שנים מחבר אוקי רק עכשיו הגעתי למחשב, קודם כל תודה על כל הנסיונות עזרה.IceBreak: כן, אני וחבר שלי מנסים משהו עם גוגלNJorl : אני באמת חיפשתי שם לפני ששאלתי בפורום ולא ראיתי את מה שיש בלינק השני שלך, זה נראה מבטיח אני יבדוק את זה עכשיו.UnPluggeD : בעקרון יש פונקציה שכל מה שהיא עושה זה לשלוח, אבל בחיים שלי לא עשיתי מערך מקלאס, אתה יכול להביא דוגמא בבקשה? תודה
פורסם 2006 בינואר 2619 שנים אוקי רק עכשיו הגעתי למחשב, קודם כל תודה על כל הנסיונות עזרה.IceBreak: כן, אני וחבר שלי מנסים משהו עם גוגלNJorl : אני באמת חיפשתי שם לפני ששאלתי בפורום ולא ראיתי את מה שיש בלינק השני שלך, זה נראה מבטיח אני יבדוק את זה עכשיו.UnPluggeD : בעקרון יש פונקציה שכל מה שהיא עושה זה לשלוח, אבל בחיים שלי לא עשיתי מערך מקלאס, אתה יכול להביא דוגמא בבקשה? תודהזה נורא פשוט !במאפיינים של האובייקט יש שדה שניקרא אינדקס תכניס לשם 0 ואז פשוטwinsock(index)פשוט ביותר וגם בכל הפונקציות ואירועים יהיה גם משתנה בשם אינדקס
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.