נשלח בתאריך: 20 February 2007 בשעה 20:00 | | IP רשוּם
|
|
|
|
כתבתי ישום tcp client וישום tcp server בסיסי... בכל מקרה הוא עובד לי רק שהכתובת היא כתובת ה- loopback של המחשב 127.0.0.1.. כשאני מנסה את התוכנית על שני מחשבים ומשתמש באייפי של אחד מהם היא לא מצליחה להתחבר (יש לי ראוטר אבל NAT אמור להעביר את המידע למחשב המתאים לפי הפורט לא?).
ה- server שלי מקשיב בכל כתובות האייפי של המחשב אני חושב.. מבנה ה- SOCKADDR_IN שלי מוגדר כך:
קוד:
InternetAddr.sin_addr.s_addr = htonl(INADDR_ANY); |
|
|
אה ועוד משהו... אני ה- server שלי עובד על non blocking sockets ומשתמש במודל עם שימוש בפונקציה WSAAsyncSelect לקבלת הודעות כמו FD_Accept או FD_Recieve.. בכל מקרה יש פעמים בהם נשלח מידע לתוכנית שלי ובכל זאת אני רואה שיש לי Error בפונקציה recv.
בעיקרון התוכנית שלי (תוכנית דוגמא קטנה בשביל תירגול) היא תוכנית בה בחלון הקליינט המתשמש מצייר משהו ובחלון הסרבר רואים גם את הציור ככה שכל פעם שבקליינט מציירים נקודה, מיקומה נשלח לסרבר.. בכל מקרה אצלי רק חלק מהנקודות מצטיירות בסרבר בגלל ה- Error ב- recv שלפעמים קורה... הוא כאילו רנדומלי ואין לי דרך להסביר מתי הוא נקרא.
|