begin process at 2012 05 29 22:11:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

probleme de socket sur dev c++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme de socket sur dev c++

mardi 29 juin 2004 à 12:01:20 | probleme de socket sur dev c++

thunderfear

Membre Club
bonjour,
donc voila g un gros probleme avec les socket. dès que je compile un code avec un socket, le linker me dit des truc et n'execute pas le prog. je vais vous donner le code source:

#include <iostream>
using namespace std ;
#include <stdlib.h>
#include <winsock.h>
#include <string.h>

#define PORT 15 // Port arbitraire de communication


//#define DEBUG // Si vous voulez pouvoir afficher les codes d'erreur

void ErreurWSA();


void main()
{

cout << "Serveur pret." << endl;

WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(1, 1);
if (WSAStartup(wVersionRequested, &wsaData))
{
cerr << "Erreur WSAStartup : " ;
ErreurWSA();
system("PAUSE") ;
exit(1) ;
}


SOCKET s;
s = socket(AF_INET,SOCK_STREAM,0);
if(s==INVALID_SOCKET)
{
cerr << "ERREUR SOCKET : ";
ErreurWSA();
system("PAUSE") ;
exit(1) ;
}
else
cout << "SOCKET : " << s << endl;


struct sockaddr_in sain;
sain.sin_family = AF_INET;
sain.sin_port = htons(PORT);
sain.sin_addr.s_addr = INADDR_ANY;

if(bind(s, (struct sockaddr *) &sain, sizeof(struct sockaddr_in)) == SOCKET_ERROR)
{
cerr << "ERREUR BIND : ";
ErreurWSA();
system("PAUSE") ;
exit(1) ;
}


if (listen(s, 5)==SOCKET_ERROR)
{
cerr << "ERREUR LISTEN : ";
ErreurWSA();
system("PAUSE") ;
exit(1) ;
}

cout << "En attente de connection." << endl;


SOCKET ns;
struct sockaddr_in fsain;
int fromlen = sizeof(struct sockaddr_in);
ns = accept(s,(struct sockaddr *) &fsain, &fromlen);

if(ns==SOCKET_ERROR)
{
cerr << "ERREUR ACCEPT : ";
ErreurWSA();
system("PAUSE") ;
exit(1) ;
}

cout << "Connection avec le client etablie." << endl;


char buffer[64];
int rec;

do
{
rec = recv(ns,buffer,64*sizeof(char),0);
buffer[rec] = '\0' ;
cout << buffer << endl;
memset(buffer, 0, 64*sizeof(char));

}while(rec>0);

cout << "Connection fermee par le client" << endl;

if(closesocket(s)==SOCKET_ERROR)
{
cerr << "ERREUR CLOSE : ";
ErreurWSA();
system("PAUSE") ;
exit(8) ;
}

WSACleanup();

cout << endl ;
system("PAUSE");


}



#ifdef DEBUG
void ErreurWSA()
{
int error = WSAGetLastError();

switch(error)
{
case WSAEINTR:
{
cerr << "WSAEINTR" << endl;
break;
}
case WSAEBADF:
{
cerr << "WSAEBADF" << endl;
break;
}
case WSAEACCES:
{
cerr << "WSAEACCES" << endl;
break;
}
case WSAEDISCON:
{
cerr << "WSAEDISCON" << endl;
break;
}
case WSAEFAULT:
{
cerr << "WSAEFAULT" << endl;
break;
}
case WSAEINVAL:
{
cerr << "WSAEINVAL" << endl;
break;
}
case WSAEMFILE:
{
cerr << "WSAEMFILE" << endl;
break;
}
case WSAEWOULDBLOCK:
{
cerr << "WSAEWOULDBLOCK" << endl;
break;
}
case WSAEINPROGRESS:
{
cerr << "WSAEINPROGRESS" << endl;
break;
}
case WSAEALREADY:
{
cerr << "WSAEALREADY" << endl;
break;
}
case WSAENOTSOCK:
{
cerr << "WSAENOTSOCK" << endl;
break;
}
case WSAEDESTADDRREQ:
{
cerr << "WSAEDESTADDRREQ" << endl;
break;
}
case WSAEMSGSIZE:
{
cerr << "WSAEMSGSIZE" << endl;
break;
}
case WSAEPROTOTYPE:
{
cerr << "WSAEPROTOTYPE" << endl;
break;
}
case WSAENOPROTOOPT:
{
cerr << "WSAENOPROTOOPT" << endl;
break;
}
case WSAEPROTONOSUPPORT:
{
cerr << "WSAEPROTONOSUPPORT" << endl;
break;
}
case WSAESOCKTNOSUPPORT:
{
cerr << "WSAESOCKTNOSUPPORT" << endl;
break;
}
case WSAEOPNOTSUPP:
{
cerr << "WSAEOPNOTSUPP" << endl;
break;
}
case WSAEPFNOSUPPORT:
{
cerr << "WSAEPFNOSUPPORT" << endl;
break;
}
case WSAEAFNOSUPPORT:
{
cerr << "WSAEAFNOSUPPORT" << endl;
break;
}
case WSAEADDRINUSE:
{
cerr << "WSAEADDRINUSE" << endl;
break;
}
case WSAEADDRNOTAVAIL:
{
cerr << "WSAEADDRNOTAVAIL" << endl;
break;
}
case WSAENETDOWN:
{
cerr << "WSAENETDOWN" << endl;
break;
}
case WSAENETUNREACH:
{
cerr << "WSAENETUNREACH" << endl;
break;
}
case WSAENETRESET:
{
cerr << "WSAENETRESET" << endl;
break;
}
case WSAECONNABORTED:
{
cerr << "WSAECONNABORTED" << endl;
break;
}
case WSAECONNRESET:
{
cerr << "WSAECONNRESET" << endl;
break;
}
case WSAENOBUFS:
{
cerr << "WSAENOBUFS" << endl;
break;
}
case WSAEISCONN:
{
cerr << "WSAEISCONN" << endl;
break;
}
case WSAENOTCONN:
{
cerr << "WSAENOTCONN" << endl;
break;
}
case WSAESHUTDOWN:
{
cerr << "WSAESHUTDOWN" << endl;
break;
}
case WSAETOOMANYREFS:
{
cerr << "WSAETOOMANYREFS" << endl;
break;
}
case WSAETIMEDOUT:
{
cerr << "WSAETIMEDOUT" << endl;
break;
}
case WSAECONNREFUSED:
{
cerr << "WSAECONNREFUSED" << endl;
break;
}
case WSAELOOP:
{
cerr << "WSAELOOP" << endl;
break;
}
case WSAENAMETOOLONG:
{
cerr << "WSAENAMETOOLONG" << endl;
break;
}
case WSAEHOSTDOWN:
{
cerr << "WSAEHOSTDOWN" << endl;
break;
}
case WSAEHOSTUNREACH:
{
cerr << "WSAEHOSTUNREACH" << endl;
break;
}
case WSASYSNOTREADY:
{
cerr << "WSASYSNOTREADY" << endl;
break;
}
case WSAVERNOTSUPPORTED:
{
cerr << "WSAVERNOTSUPPORTED" << endl;
break;
}
case WSANOTINITIALISED:
{
cerr << "WSANOTINITIALISED" << endl;
break;
}
case WSAHOST_NOT_FOUND:
{
cerr << "WSAHOST_NOT_FOUND" << endl;
break;
}
case WSATRY_AGAIN:
{
cerr << "WSATRY_AGAIN" << endl;
break;
}
case WSANO_RECOVERY:
{
cerr << "WSANO_RECOVERY" << endl;
break;
}
case WSANO_DATA:
{
cerr << "WSANO_DATA" << endl;
break;
}
default:
{
cerr << "Erreur inconnue" << endl;
break;
}
}
}

#else //DEBUG
void ErreurWSA(){}

#endif //DEBUG

voila je le compile et il y a une fenetre qui me met :
-undefined reference to "WSAstartup@8"
- undefined reference to "socket@12"
- undefined reference to htons@4"
-undefined reference to "bind@12"
et il continue avec toute les autres fonction socket.

que dois-je faire??

SVP aidez-moi

THE THUNDERFEAR [ Lien ]
mardi 29 juin 2004 à 12:10:15 | Re : probleme de socket sur dev c++

BruNews

Administrateur CodeS-SourceS
manque ref sur ws2_32.lib

ciao...
BruNews, Admin CS, MVP Visual C++
mardi 29 juin 2004 à 12:11:54 | Re : probleme de socket sur dev c++

dletozeun

Je pari que t'as pas lié les librairies : libwsock32.a ( quand tu inclu winsock.h) ou libws2_32.a ( quand tu inclu winsock2.h) a ton projet

pour le faire tu vas dans les propriétés du projet puis "add library or object" et vas chercher libwsock32.a dans le repertoire lib de devcpp

voila!
mardi 29 juin 2004 à 12:17:08 | Re : probleme de socket sur dev c++

thunderfear

Membre Club
merci :)

THE THUNDERFEARwww.thunderfear.be.tf


Cette discussion est classée dans : case, break, socket, endl, cerr


Répondre à ce message

Sujets en rapport avec ce message

ou sont les erreurs? [ par nazca ] Le Zero de la programmationNazcaj'aimerai savoir si quelqu'un pourrai me dire ou son les erreur dans mon programme,car apres la compilation il me dit Aide sockets non bloquants [ par shadow1779 ] il n'y a pas longtemps on m'a filé un ebook sur les sockets C avec l'API j'ai compris deux trois truc mais j'ai l'impression de caler j'aimerai qu'on cosinus,sinus,tangante,ans [ par chinois57 ] quelqu'un peut maider a rajouter (cos, sin, tan, ans) svp ma source est:#include #include #include main(){float x,y;char z; printf("veuillez saisir un prob math [ par chinois57 ] g un prob pour faire les fonction cosinus, sinus,tangante, ansmerci de maider ma source est: #include #include #include main(){float x,y;char z; print GESTION CLAVIER SDL [ par Batman60 ] voici un bout de code qui  sert à me déplacer dans une scène 3D opengl ,le problème c'est qu'il faut à chaque fois appuyer sur la touche pour ce dépla Point d'entrée DLL [ par victorcoasne ] Bonjour, J'ai Dev-C++ et quand je créé une dll la fonction DllMain() n'est pas apellé quand je charge dans un porgramme cette dll ! Voici le code de Lister Chaque lancer de dé aléatoire [ par pkmnlio ] bonjour,je suis entrain de faire un programme qui donne 100 nombres aléatoirement entre 1 et 6  puis me dis combien de 6 j'ai obtenu et combien de nom Problème switch [ par seleccao ] Bonjours à tous Pour mon application en c++ je travaille avec de l'hexadecimal et j'utilise un switch switch(n1) { case '0000': hexa1 = "0";break; ca Pb de conception [ par blinix123 ] ....................  switch (*reponse)  {   case 'a': case 'A':    remplissage (tablo, &cpt);    brea Ma fonction ouvrir un dossier ne marche pas [ par papaolive ] Bonjour,je sais que le code qui va suivre n'est pas très beau (c'est le moin sque l'on puisse dire !).J'ai crée 7 edit box qui chacune représente le s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,872 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales