בעיה ב socket

the another one

New member
בעיה ב socket

שלום ! אני מנסה ליצור קשר בין 2 תוכניות בעזרת socket. 2 התוכניות על אותומחשב אבל כשאני עושה connect - הוא מנסה להתחבר לאינטרנט......... מה לעשות ?? הנה הקוד :
short port = 5551; int sock; int createSocket() //This function creates a socket { WSADATA wsaData; // if this doesn't work //WSAData wsaData; // then try this instead 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 = htonl(INADDR_ANY); //Creating a socket. if (sock==-1) { perror("socket"); exit(1); } bind(sock,(struct sockaddr *)&sa, sizeof(struct sockaddr)); // Connecting the socket to the server. if (connect(sock,(struct sockaddr*)&sa,sizeof(struct sockaddr))<0) { perror("connect"); sock=0; } return sock; } int irecv() { char buf[2]; recv(sock,buf,8,0); cout<<buf<<endl; int sig=atoi(buf); return sig; } void isend(int sig) { char dat[2]; char *buf=gcvt(sig,1,dat); send(sock,buf,8,0); }​
 

galh

New member
שני דברים...

הראשון, אין צורך שהקליינט יעשה bind, זה התפקיד של הסרבר. דבר שני, אתה אמור להעביר לפונקציה connect את הכתובת שאליה אתה רוצה להתחבר (127.0.0.1 במקרה שלך) ולא INADDR_ANY.
 
למעלה