עבור לתוכן

++C שרת-לקוח, קוד:

Featured Replies

פורסם

מה הם המשתנים שמגדירים פה?

איך מוצאים כתובת IP של מחשב? לאן מכניסים את של המחשב איתו מתקשרים?

מה מבצעת הלולאה בשורות 55-65?

איפה מתנהלת השיחה?

[attachment deleted by admin]

  • תגובות 31
  • צפיות 3.4k
  • נוצר
  • תגובה אחרונה
פורסם

שני בבקשה את הכותרת כך שתכיל יותר מידע (שפה, על מה הקוד וכד')

פורסם

http://msdn2.microsoft.com/en-us/library/ms738520(VS.85).aspx

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

התוכנה הזו היא רק שרת שמאזין, לכן אין מקום להכניס את המחשב שאיתו מתקשרים (בתוכנה של הלקוח מכניסים את הכתובת של השרת שמריץ את הקוד הזה).

55-65 קורא מידע שהלקוח שולח לו.

השיחה מתנהלת בין 56 ל 73 (בהתחלה השרת מאזין ואז שולח חזרה מידע).

פורסם
  • מחבר

זה הקובץ של הלקוח, איפה אני רושמת את כתובת הIP של השרת?

ו- איך מסתיימת השיחה ביניהם?

[attachment deleted by admin]

פורסם

התוכנה מקבלת משתנה argv

זה בעצם נגיד את מריצה את התוכנה מcmd

progran.exe -parameter

-parameter תכניסי פה את האי פי שאת רוצה להתחבר אליו

פורסם

מכיוון ש socket הוא דו-כיווני, אז ה shutdown של הלקוח סוגר את הצד שלו וה shutdown של השרת סוגר את הצד שלו (וככה כל צד יודע מתי השני סיים).

פורסם
  • מחבר

לא הבנתי איך אני מריצה את התכנית (למה מCMD? ואיך עושים את זה?)

במילים אחרות: יש לי שני מחשבים, על אחד אני רוצה להריץ את השרת, על השני את הלקוח: מה אני עושה (שלב שלב, מהתחלה)?

פורסם

לקמפל קובץ C++ ל EXE את יודעת ? (תבחרי בסביבת IDE האהובה עליך, תעשי פרויקט WIN32 CONSOLE, תוסיפי את ספרית WSOCK32.LIB ותקמפלי).

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

פורסם
  • מחבר

אני עובדת בסביבת visual studio, כשאני מריצה את התכנית (F5) של הלקוח- עולה מסך שחור, והוא נסגר מייד.

<אין לי בשום מקום להכניס את המספר הIP של המחשב השני> ???

פורסם

זה כי את צריכה בהגדרות פרויקט ב command line parameters להכניס את ה IP. אם את מסתבכת עם זה, את יכולה בקוד פשוט להכניס ישירות את ה IP בקטע שהוא קורא את ה ARGV הראשון.

פורסם
  • מחבר

פה אני צריכה להכניס את זה? <שורה 18>


// Validate the parameters
if (argc != 2) {
printf("usage: %s server-name\n", argv[0]);
return 1;
}

איזה סוג משתנה הוא הכתובת IP?

פורסם

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

/* 28. */  iResult = getaddrinfo(argv[1], DEFAULT_PORT, &hints, &result);

במקום [argv[1.

פורסם
  • מחבר

OK , אז הצלחתי להריץ את התכנית- אך לא ליצור תקשורת (הוא מגיע פעם אחת לשורה 58 אצל השרת- ואז (הלקוח?) מנתק את התקשורת).

איך אני מגיעה לדו שיח בינהם?

פורסם

מה זאת אומרת?

מה השרת מדפיס?

מה הלקוח מדפיס?

(הבנת בכלל מה התכנית אמורה לעשות?)

פורסם
  • מחבר

אצל הלקוח:

 
Bytes Sent: 14
recv failed 10054

אצל השרת:


Bytes received: 14
Connection closing...

וזהו.

ארכיון

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

דיונים חדשים