עוד פעם ה socket הזה....

the another one

New member
עוד פעם ה socket הזה....

תיקנתי את הפונקציה ושוב..... עושה בעיות.... ושוב ה connect ..... עכשיו, תקנו אותי אם לא הבנתי טוב, אבל 127.0.0.1 זה ה IP של המחשב שלי, נכון? עכשיו, כשאני מנסה להפעיל את ה connect , ה errno מחזיר לי 9 ( no error) אבל ה connect מחזיר לי 1- !!! הנה הקוד :
short port = 5551; int sock; int createSocket() //This function creates a socket { WSADATA wsaData; if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) { cout<<"WSAStartup failed.\n"; exit(1); } struct sockaddr_in sa; sock=socket(AF_INET,SOCK_STREAM,0); sa.sin_family=AF_INET; sa.sin_port=htons(port); sa.sin_addr.s_addr =inet_addr("127.0.0.1"); //Creating a socket. if (sock==-1) { perror("socket"); exit(1); } // Connecting the socket to the server. if (connect(sock,(struct sockaddr*)&sa,sizeof(struct sockaddr))==-1) { perror("connect"); sock=0; } return sock; }​
help !
 

HaRmosh

New member
בדקת שבאותו מחשב ה-server

רץ על listen ? אחרת, לפי מה שאני זוכר, לא תוכל להתחבר...
 

the another one

New member
10 X ../images/Emo163.gif לא הפעלתי את ה server !

זה מה שקורה כשעובדים על משהו אחר 7:30 שעות בלי לאכול או לשתות... אם לא אוכלים ולא שותים - לא משתמשים ב socket-ים. מוגש מטעם המועצה למלחמה בשאלות טיפשיות.
תודה
 

voguemaster

New member
תגיד..

חשבת ללמוד את זה טיפה יותר מסודר ? יש כמה ספרים ממש טובים בנושא
 

the another one

New member
למדתי את זה כבר אבל

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

voguemaster

New member
אוקיי...

יש לי כמה הצעות. בד"כ כשכותבים קוד מהסוג הזה, הייתי ממליץ לכתוב כמה שיותר error checking. כלומר, אם תכתוב קוד מסוים שיידע לגלות מה *בדיוק* קרה לפי ה-errno או כל דבר אחר, זה יעזור לך לא רק בליצור אפליקציה בריאה יותר אלא גם יעזור לך בדיבוג של בעיות בזמן פיתוח. נקודתית כשמדובר בטיפול בשגיאות מהסוג הזה, זה קוד שכותבים פחות או יותר פעם אחת וזהו. היית יכול בקלות לעלות על זה שלא הרצת את ה-SERVER ולא היה שום דבר בצד השני שמאזין
 
למעלה