עבור לתוכן

איך בדיוק מיישמים TcpListener.?

Featured Replies

פורסם

אחרי קריאה מעמיקה הבנתי שבשביל שאצור תוכנה שמעבירה מידע לתוכנה במקום אחר הבנתי שאני צריך לעשות שרת, שהוא יהיהTcpListener.ושכל תוכנה תהיה TcpClient

אפילו ראיתי קטעי קוד לדוגמא

השאלה שלי היא כזאת, איפה אני שם את הקוד הזה בדיוק? זה קובץ CS כאילו פה אני נאבד לגמרי, נגיד יש לי 2 קבצים, אחד CS שלclient והקובץ השני הוא הlistener

מה כאילו? אני מבולבל

אני צריך עכשיו פשוט להעתיק את הקובץ הזה לשרת? ולשתול את הקטע קוד של הclient אצלי בתוכנה?

פורסם

בסופו של דבר צריכות להיות לך שתי תוכנות - השרת והלקוח. לכל אחד מהם צריך להיות main משלו, והוא מתקמפל ל-exe משלו.

פורסם
  • מחבר

זאת אומרת אני לוקח את הקובץ CS בmain אני יוצר מופע של הקובץ הזה...

ואצלי אני עושה תוכנה שיוצרת מופע של הCS השני?

פורסם
  • מחבר

רגע אז אם אני בעצם עושה תוכנה שלי, למשל אני רוצה סתם לדוגמא לעשות איקס עיגול, אז איך זה בדיוק מתנהל, תוכנה של listener שיושבת בשרת, והיא מתווכת בין 2 אפליקציות של הclient?

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

אני אסביר זאת באיור הבא:

http://img690.imageshack.us/img690/7159/13zv.jpg" target="_blank" rel="nofollow">[img'>http://img690.imageshack.us/img690/7159/13zv.th.jpg</a>"]http://13zv.th.jpg

פורסם
  • מחבר

אבל אז זה אומר שהתוכנה שרשמתי בשרת צריכה לעבוד כל הזמן

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

- - - תגובה אוחדה: - - -

ושניצל, תודה רבה רבה רבה שאתה עונה לי על דברים! באינטרנט יש הכל אבל לא עונים על כל דבר, טוב לראות שיש אנשים כמוך שעוזרים ולא רק שולחים לאינטרנט

:)

פורסם

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

נערך על-ידי שניצל

פורסם

אתה גם יכול ליישם את זה כך שהתוכנה שרצה אצל אחד השחקנים היא השרת, והתוכנה שרצה אצל השני היא הלקוח.

ככה שאחד יוזם את המשחק (והוא השרת) והשחקן השני מצטרף למשחק (והוא הלקוח).

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

פורסם
  • מחבר

אני רוצה להתחיל לרשום תוכנה, אבל אני לא יודע באיזה סוג שרת לבחור, זה שרת רגיל? כאילו הכוונה שלי שאני צריך למצוא אתר חינמי, להעתיק לבפנים את הקובץ הרצה וזהו? רק לזכור את הIP של השרת ואת הPORT שבחרתי לתוכנה? ואיך אני גם מפעיל את התוכנה על השרת?

פורסם

למה אתה צריך שרת חיצוני? תתחיל מלהריץ את השרת והלקוח\לקוחות על אותו מחשב.

נערך על-ידי שניצל

פורסם
  • מחבר

אבל אז זה לא באמת אמיתי, כי אני נותן את הכתובת IP של עצמי, זה עבודה בעיניים חחחח

:)

פורסם

...אז? תתחיל מלכתוב קוד שעובד כשהשרת והלקוח על אותו מחשב. אחרי שזה יעבוד תחשוב על להריץ על מחשבים שונים.

חוץ מזה, אתה תמיד יכול גם להרים מכונה וירטואלית (VM) על המחשב, ואז יש לך כאילו שני מחשבים.

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

לא. אתה לא חייב שרת שלישי.

התוכנה רצה פעמים, אחד אצל שחקן א' (במחשב אחד), ואחד אצל שחקן ב' (במחשב אחר).

אחד מהם הוא השרת, ואחד מהם הוא הלקוח.

הIP של השרת הוא הIP של המחשב של השחקן שרץ כשרת.

פורסם

^^ גם נכון. החסרון של השיטה הזו היא שבמקום שיש רק שרת אחד שמרכז את המשחקים, מי שרוצה לשחק חייב להכיר את ה-IP של השחקן האחר (אבל גם את זה אפשר לפתור).

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

ארכיון

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

דיונים חדשים