עבור לתוכן

שאלה בנוגע לתכנות תוכנה מול שרתים

Featured Replies

פורסם

שלום,

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

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

ועוד שאלה אם אני כבר באותו נושא - איך למעשה תכנתו את הICQ? באיזה שפת תכנות?

אני אודה לכל מי שיוכל לתת לי קצת פרטים על הנושא...

פורסם

אני מניח שאת ה ICQ כתבו בשפת C / C++.

אפשר לכתוב תוכנות כאלו בכל שפה שיש, אתה צריך בסה"כ תמיכה ב TCP/IP SOCKETS שזה הפרוקוטול תעבורה שבה תוכנות כאלו משתמשים (ועל בסיס זה כתוב הפרוקוטול של ה ICQ).

לגבי איזה שפה, זה כבר עניין של איזה שפה אתה מרגיש הכי נוח בה... אתה צריך תוכנה עם ממשק גרפי ? בלי ?

פורסם
  • מחבר
לגבי איזה שפה, זה כבר עניין של איזה שפה אתה מרגיש הכי נוח בה... אתה צריך תוכנה עם ממשק גרפי ? בלי ?

אני מרגיש הכי נוח עם VB אבל אני מניח שזאת לא שפה מספיק מקצועית לביצוע תוכנית ברמה גבוהה, או שאני טועה?!

אני צריך תוכנה עם ממשק גרפי כל שהוא...

פורסם

הבנתי, תראה, שוב, כל שפה יכולה לעבוד ולהספיק... תחפש ACTIVEX CONTROL ל VISUAL BASIC שמספק WINSOCK TCP/IP.. תוכל גם למצוא דוגמאות באינטרנט לשימוש ב WINSOCK ב VISUAL (תחפש ב GOOGLE).

פורסם

אני מרגיש הכי נוח עם VB אבל אני מניח שזאת לא שפה מספיק מקצועית לביצוע תוכנית ברמה גבוהה, או שאני טועה?!

אתה טועה :)

אני הכנתי בדיוק את התוכנה שאתה מתאר המתחברת לשרת המדבר עם מסד נתונים SQL.

מסד הנתונים יכל להיות גם של Access תלוי מה יש לך.

אני צריך למצוא את הקוד אבל אני אתן לך קווים מנחים שאם אתה מספיק מנוסה ב VB אתה תצליח בלי בעיה.

צד שרת:

הוספת Reference מסוג Microsoft Activex Data Objects 2.5 Library

לאחר שהוספת אותו יש לך אופציה ליצור ממשק התחברות למסד נתונים ADODB ללא פקד בצורה הבאה:


Dim obConn as ADODB.Connection

ואותו אתה מחבר למסד הנתונים

לאחר מכן אתה יוצר באותה הדרך גם את הרשומה ( Recordset ).

לאחר שהשרת יודע "לדבר" עם מסד הנתונים לשם הגדרות כמו מי מחובר ומאיפה וכו השרת צריך לקבל התחברויות של לקוחות.

זאת ניתן לבצע ע"י פקד WINSOCK.

מכיוון שאנחנו לא רוצים חיבוריחיד צריך ליצור מערך פקדים ע"י שינוי האינדס של הפקד ל 0.

יש לבחור פורט שאליו יאזין הפקד וליצור תרחיש בקשת התחברות ( ConnectionRequest ) ותרחיש קבלת נתונים ( DataArrival )

כאשר בקבלת הנתונים שבשרת אתה מבצע את הפונקציות שכותבות למסד הנתונים ופונקציות המטפלות במידע נכנס כמו טקסט שאמור להגיע לידע מסויים.

את כל אלה אתה צריך לקבוע לפי מה שנוח לך.

צד לקוח:

אצל הלקוח אין צורך במסד נתונים, מספיק קובץ טקסט פשוט שיכל כמה הגדרות בסיסיות שתצטרך.

יש צורך ליצור מערך פקדי WinSock.

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

החיבור הזה יעשה ישירות מלקוח ללקוח ללא מעבר דרך שרת ( P2P ).

זהו בגדול.

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

תהנה.

פורסם

רעיון טוב, אבל אני חושב שכדאי להתחיל בקטן... אפשר לבנות משהו קטן לכמה אנשים ע"י שמירת נתוני ההתקשרות באיזה מבנה נתונים בזכרון במקום להתחיל להתפרע עם מסדי נתונים ו SQL (בהנחה שאין לו נסיון בזה).

ארכיון

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

דיונים חדשים