23/04/08 17:58
Nexos
Salve a tutti..
Da un po' di tempo sto sbattendo la testa contro questo codice: all'apparenza sembra corretto, ma ogni volta che lo mando in esecuzione, dà errore sulla funzione Bind.
Il codice è questo:
Ho davvero bisogno di poterlo fare funzionare... ._."
Da un po' di tempo sto sbattendo la testa contro questo codice: all'apparenza sembra corretto, ma ogni volta che lo mando in esecuzione, dà errore sulla funzione Bind.
Il codice è questo:
#include<stdio.h> #include<winsock.h> main() { WSADATA wsdata; int versione, funzione_bind, funzione_listen; SOCKET server, accetta_connessioni; SOCKADDR_IN parametri_server; int lenght; char mex[100]; //inizializzazione if((versione=WSAStartup(MAKEWORD(2,2), &wsdata))){ printf("Errore nell'inizializzazione della socket\n"); exit(-1); } //creazione if((server=socket(AF_INET, SOCK_STREAM, 0)==INVALID_SOCKET)){ printf("Errore nella creazione della socket\n"); WSACleanup(); exit(-1); } //assegnazione parametri parametri_server.sin_family=AF_INET; parametri_server.sin_addr.s_addr=INADDR_ANY; parametri_server.sin_port=htons(1234); //bind funzione_bind=bind(server, (struct sockaddr*)¶metri_server, sizeof(parametri_server)); if(funzione_bind==SOCKET_ERROR){ printf("Errore nell'associazione del nome X\n"); closesocket(server); WSACleanup(); system("pause"); exit(-1); } //listen if((funzione_listen=listen(server, 1))==SOCKET_ERROR){ printf("Errore in fase di ascolto\n"); closesocket(server); WSACleanup(); exit(-1); } //accept printf("Socket creata correttamente. In attesa di connessioni..\n\n"); while(1){ accetta_connessioni=ERROR; while(accetta_connessioni==ERROR){ accetta_connessioni=accept(server, NULL, NULL); } server=accetta_connessioni; break; } //ricezione do{ recv(server, mex, 100, 0); printf("Messaggio ricevuto >> %s\n", mex); }while(strcmp(mex, "exit")==0); getchar(); //fine closesocket(server); WSACleanup(); }
Ho davvero bisogno di poterlo fare funzionare... ._."
aaa