ciao a tutti!!
Allora sto usando le socket in C e voglio effettuare una connessione tra le due socket ed ho fatto in questo modo:
codice:
#include<winsock.h>
#include<stdio.h>
SOCKET s,s2;
WSADATA InfoS;
struct in_addr indi;
struct sockaddr_in add1,add2;
main() {
printf("\nMetto una socket in ascolto");
WSAStartup(0x0202,&InfoS);
s=socket(PF_INET,SOCK_STREAM,0);
add1.sin_port=htons(1001);
add1.sin_addr.s_addr=INADDR_ANY;
add1.sin_family=PF_INET;
bind(s,(struct sockaddr*)&add1,sizeof(struct sockaddr_in));
listen(s,1);
getchar();
add2.sin_port=htons(1001);
add2.sin_family=PF_INET;
add2.sin_addr.s_addr=INADDR_ANY;
bind(s2,(struct sockaddr*)&add2,sizeof(struct sockaddr_in));
connect(s2,(struct sockaddr*)&add1,sizeof(struct sockaddr_in));
getchar();
}
Allora appena lo avvio la prima socket si mette in ascolto sulla porta 1001...
Il problema è che la seconda socket non riesce a connettersi...
Se vado sulla console di dos e faccio netstat -na prima che venga eseguita l'istruzione connect vedo effettivamente che la porta 1001 è in listening...
Se pero vado a vedere di nuovo, dopo che l'istruzione connect sia stata eseguita, sulla console di dos con netstat -na troverò che la porta 1001 è ancora in ascolto invece di esserci una connessione...
Non so proprio come procedere... Non è che qualcuno potrebbe aiutarmi...
Ciao ciao e grazie a tutti!!