Titre: [C/C++] sockets sous windows Posté par: hackeur21 le 27 Décembre 2009 à 20:07:19 bonjour a tous .
je suis nouveau dans le c/c++ est je souhaite faire fonctionnez un sockets . je regarde sur internet les sockets et , j en trouve beaucoup . alors j ouvre soit code bloks ou dev c++ je fait un nouveau projet et je colle le sockets et , j ai toujours des erreur de compilation . sur tous les sockets du monde que je trouve , impossible de compilez 1 . y a t il quelque chose a faire ?? j ai cherchez sur google est comme je vois , tout le monde arrive a faire fonctionnez leurs sockets . merci de me repondre . merci Titre: Re : sockets c/c++ sous windows Posté par: Maestro le 27 Décembre 2009 à 20:08:26 Go : SiteDuZero.com, il me semble qu'il y a un tuto là dessus !
Titre: Re : sockets c/c++ sous windows Posté par: hackeur21 le 27 Décembre 2009 à 20:12:39 oui j ai bien vu le tuto sur les sockets qui est bien a cette adresse : http://www.siteduzero.com/tutoriel-3-3279-manipulation-de-sockets.html
mes je ne vois pas la solution . merci de votre aide . ps : si vous arrive a trouvez le probleme , ses un vrai newbie ;) merci Titre: Re : Re : sockets c/c++ sous windows Posté par: _o_ le 27 Décembre 2009 à 20:43:08 ps : si vous arrive a trouvez le probleme , ses un vrai newbie ;) Et comment fait-on pour t'aider alors que tu ne donnes aucun détail ? Alors, à minima, c'est : - le code source de ce que tu cherches à compiler. - le message d'erreur !!! - ton compilateur, et si possible, sa configuration. J'ajoute qu'un petit effort de rédaction de ta part serait également utile. Titre: Re : sockets c/c++ sous windows Posté par: fadam le 27 Décembre 2009 à 20:49:11 Un problème de librairie peut être ? j'ai trouvé ça sur Internet, ça a marché pour moi :
"Avec Dev-C++ : Aller dans le menu Projet ->Options du Projet onglet "Paramètres" : en dessous de la listebox "Editeur de liens" cliquer sur Ajouter fichier et selectionner libwsock32.a " Titre: Re : sockets c/c++ sous windows Posté par: hackeur21 le 27 Décembre 2009 à 21:27:25 fadam merci tu as repondu a mon probleme .
merci a tous . cordialement : hackeur21 Titre: Re : sockets c/c++ sous windows Posté par: hackeur21 le 27 Décembre 2009 à 21:51:11 excusez moi mes je vais detaillez plus precisement :
mon code est : #include <winsock2.h> #include <stdio.h> #pragma comment(lib,"ws2_32.lib") void main() { WSADATA wsa; WSAStartup(MAKEWORD(2,0),&wsa); SOCKET sock; SOCKADDR_IN sin; char ip[15]; int port=0; int proto=0; int act=0; memset(ip,0,sizeof(ip)); printf("Socket by vbnul\n\n"); printf("Protocole(0-TCP|1-UDP) : ");scanf("%i",&proto); printf("0-connecter | 1-ecouter : ");scanf("%i",&act); if(act!=1){printf("Ip : ");scanf("%s",ip);} printf("Port : ");scanf("%i",&port); sin.sin_family=AF_INET; if(ip[0]!='\0') sin.sin_addr.s_addr=inet_addr(ip); else sin.sin_addr.s_addr=INADDR_ANY; sin.sin_port=htons(port); char buffer[100]; int sinsize=sizeof(sin); if(proto==1)//protocole UDP { sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); bind(sock,(SOCKADDR*)&sin,sinsize); if(act==1)//Mode écoute { while(1) { memset(buffer,0,sizeof(buffer)); recvfrom(sock,buffer,sizeof(buffer),0,(SOCKADDR*)&sin,&sinsize); if(buffer[0]!='\0') printf("Recu : %s\n",buffer); } } else//Mode envoi { while(1) { memset(buffer,0,sizeof(buffer)); printf("Envoyer : "); scanf("%s",buffer); sendto(sock,buffer,sizeof(buffer),0,(SOCKADDR*)&sin,sinsize); } } } else//protocole TCP { int err=0; if(act==1)//Mode Server { SOCKET serv; SOCKADDR_IN sin2; serv=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); bind(serv,(SOCKADDR*)&sin,sinsize); listen(serv,0); sinsize=sizeof(sin2); while(1) { sinsize=sizeof(sin); if((sock=accept(serv,(SOCKADDR*)&sin2,&sinsize))!=INVALID_SOCKET) { printf("Connection etablie\n"); while(err>-1) { memset(buffer,0,sizeof(buffer)); err=scanf("%s",buffer); send(sock,buffer,sizeof(buffer),0); memset(buffer,0,sizeof(buffer)); recv(sock,buffer,sizeof(buffer),0); printf("%s\n",buffer); } printf("Connection perdue\n\n"); } } } else//Mode Client { sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if(connect(sock,(SOCKADDR*)&sin,sinsize)) { printf("La connection a échoué\n"); system("PAUSE"); exit(0); } while(err>-1) { scanf("%s",buffer); err=send(sock,buffer,sizeof(buffer),0); memset(buffer,0,sizeof(buffer)); err=recv(sock,buffer,sizeof(buffer),0); printf("%s\n",buffer); memset(buffer,0,sizeof(buffer)); } } } } impossible de le compillez comme tout les autres sockets . aidez moi svp . merci Titre: Re : sockets c/c++ sous windows Posté par: fadam le 27 Décembre 2009 à 22:24:58 Essayes "int main" au lieu de "void main"
Titre: Re : Re : sockets c/c++ sous windows Posté par: _o_ le 27 Décembre 2009 à 23:50:13 impossible de le compillez comme tout les autres sockets . C'EST QUOI LE MESSAGE D'ERREUR ?!? Titre: Re : sockets c/c++ sous windows Posté par: hackeur21 le 29 Décembre 2009 à 14:46:52 j ai toujours un message d erreur donc inprecis
Titre: Re : Re : sockets c/c++ sous windows Posté par: _o_ le 29 Décembre 2009 à 23:33:49 j ai toujours un message d erreur donc inprecis Je comprends pas ce que tu veux dire par là. Mais c'est pas grave, moi, je vais bien, c'est toi qui a un problème. Si tu ne veux pas donner les informations pour que l'on t'aide à le résoudre, ça ne m'empêchera pas de dormir. Titre: Re : sockets c/c++ sous windows Posté par: hackeur21 le 30 Décembre 2009 à 11:45:32 a chaque fois que je veux faire un sockets j ai des erreur exemple :
il n arrive pas a creer un fichier main.o toute des erreur qui se passe avec tout les sockets que j essaie de mettre en main . avec dev c++ avec code blocks avec microsoft visual c++ 2005 . je me demandez si il ne fallait pas exemple : quand on inclut un fichier #include <stdio.h> #include <stdlib.h> la pas de probleme mes si on inclut un autres fichier faut t il faire quelque chose ?? merci . Titre: Re : sockets c/c++ sous windows Posté par: Muska le 30 Décembre 2009 à 21:39:43 Je pense que _o_ s'attendait à ce que tu fasses un copier/coller du/des messages d'erreur du/des IDE ...
Titre: Re : sockets c/c++ sous windows Posté par: hackeur21 le 31 Décembre 2009 à 14:53:53 voici les erreur :
Compilateur: Default compiler Building Makefile: "C:\Users\hackeur21\Desktop\sockets\Makefile.win" Exécution de make... make.exe -f "C:\Users\hackeur21\Desktop\sockets\Makefile.win" all g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include" main.cpp:7: error: `main' must return `int' make.exe: *** [main.o] Error 1 Exécution terminée ses erreur apparaise sur se socket : #include <winsock2.h> #include <stdio.h> #pragma comment(lib,"ws2_32.lib") void main() { WSADATA wsa; WSAStartup(MAKEWORD(2,0),&wsa); SOCKET sock; SOCKADDR_IN sin; char ip[15]; int port=0; int proto=0; int act=0; memset(ip,0,sizeof(ip)); printf("Socket by vbnul\n\n"); printf("Protocole(0-TCP|1-UDP) : ");scanf("%i",&proto); printf("0-connecter | 1-ecouter : ");scanf("%i",&act); if(act!=1){printf("Ip : ");scanf("%s",ip);} printf("Port : ");scanf("%i",&port); sin.sin_family=AF_INET; if(ip[0]!='\0') sin.sin_addr.s_addr=inet_addr(ip); else sin.sin_addr.s_addr=INADDR_ANY; sin.sin_port=htons(port); char buffer[100]; int sinsize=sizeof(sin); if(proto==1)//protocole UDP { sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); bind(sock,(SOCKADDR*)&sin,sinsize); if(act==1)//Mode écoute { while(1) { memset(buffer,0,sizeof(buffer)); recvfrom(sock,buffer,sizeof(buffer),0,(SOCKADDR*)&sin,&sinsize); if(buffer[0]!='\0') printf("Recu : %s\n",buffer); } } else//Mode envoi { while(1) { memset(buffer,0,sizeof(buffer)); printf("Envoyer : "); scanf("%s",buffer); sendto(sock,buffer,sizeof(buffer),0,(SOCKADDR*)&sin,sinsize); } } } else//protocole TCP { int err=0; if(act==1)//Mode Server { SOCKET serv; SOCKADDR_IN sin2; serv=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); bind(serv,(SOCKADDR*)&sin,sinsize); listen(serv,0); sinsize=sizeof(sin2); while(1) { sinsize=sizeof(sin); if((sock=accept(serv,(SOCKADDR*)&sin2,&sinsize))!=INVALID_SOCKET) { printf("Connection etablie\n"); while(err>-1) { memset(buffer,0,sizeof(buffer)); err=scanf("%s",buffer); send(sock,buffer,sizeof(buffer),0); memset(buffer,0,sizeof(buffer)); recv(sock,buffer,sizeof(buffer),0); printf("%s\n",buffer); } printf("Connection perdue\n\n"); } } } else//Mode Client { sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if(connect(sock,(SOCKADDR*)&sin,sinsize)) { printf("La connection a échoué\n"); system("PAUSE"); exit(0); } while(err>-1) { scanf("%s",buffer); err=send(sock,buffer,sizeof(buffer),0); memset(buffer,0,sizeof(buffer)); err=recv(sock,buffer,sizeof(buffer),0); printf("%s\n",buffer); memset(buffer,0,sizeof(buffer)); } } } } merci Titre: Re : sockets c/c++ sous windows Posté par: le tunisiano le 31 Décembre 2009 à 15:53:56 int main() {
.... return 0; } Titre: Re : sockets c/c++ sous windows Posté par: mogg41 le 31 Décembre 2009 à 18:41:40 Faut arrêter de prendre les gens pour des cons...
- Tu copy/past du code trouvé sur le net et tu nous demandes de trouver les erreurs de compilation - Tu mets 5 jours avant de nous dire l'erreur que retourne le compilo Et finalement on se rend compte que tu n'es pas même pas capable de voir que ton main ne retourne rien. Avant de vouloir utiliser des sockets, apprend les BASES du C/C++. Et ce n'est avec du copy/past que l'on apprend. Le code il faut le tapper avec ses petits doigts sur son clavier. Et oui c'est chiant et c'est plus long que de récupérer du code sur internet mais c'est comme ça qu'on apprend... Titre: Re : sockets c/c++ sous windows Posté par: supersnail le 22 Janvier 2010 à 19:40:58 @mogg41 : tout à fait
|