IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Socket : v�rifier un proxy


Sujet :

C++

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2004
    Messages
    63
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 63
    Par d�faut Socket : v�rifier un proxy
    Bonjour,

    J'ai esseyer de faire un script qui v�rifie si un proxy fonctionne ou non:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    #include <iostream>
    #include <winsock2.h>
    #include <fcntl.h>
    #include <sys/fcntl.h>
    #pragma comment(lib, "ws2_32.lib")
    using namespace std;
     
    int main(){
    	WSADATA WSAData;
    	WSAStartup(MAKEWORD(2,0), &WSAData);
    	SOCKET sock;
    	SOCKADDR_IN sin;
    	unsigned long nonblocking=1;
     
    	sin.sin_addr.s_addr	= inet_addr("195.175.37.8"); 
    	sin.sin_family		= AF_INET;
    	sin.sin_port		= htons(80);
    	sock = socket(AF_INET,SOCK_STREAM,0);
     
        /* LINUX: */
        //fcntl (sock, F_SETFL, O_NONBLOCK);                                    
        /* WINDOWS: */
        if(ioctlsocket(sock, FIONBIO, &nonblocking)<0){
    		cout<<WSAGetLastError()<<endl;
    		cerr<<"La socket ne peut être rendu non-bloquante"<<endl;
            cerr<<"On continue quand même avec socket bloquante. Patience."<<endl;
        }
     
    	connect(sock, (SOCKADDR *)&sin, sizeof(sin));
    	if(WSAGetLastError()!=WSAEWOULDBLOCK){ // LINUX : EINPROGRESS
    		cout<<"Erreur 0: "<<WSAGetLastError()<<endl;
            exit(1);
        }else{
    		fd_set readfds;
    		FD_ZERO(&readfds);
    		FD_SET(sock, &readfds); 
    		struct timeval tv;
    		tv.tv_sec = 2;
    		tv.tv_usec = 500*1000;
    		int r;
     
    		if((r=select(sock+1, &readfds, NULL, NULL, &tv))<0){
    			cout<<"Erreur 1: "<<WSAGetLastError()<<endl;
    			exit(1);
    		}else if(r==0){
    			cout<<"Erreur 2: "<<WSAGetLastError()<<endl;
    			exit(1);
    		}else{
    			cout<<"Le proxy a répondu favorablement. Tout semble ok."<<endl; 
    		}
    	}
     
    	WSACleanup();
    	return 0;
    }
    M�me si je donne � mon script une ip de proxy, il m'affiche toujours: "Erreur 2: 0", pourquoi ?

    Merci d'avance...

  2. #2
    Membre �m�rite
    Avatar de Freed0
    Profil pro
    �tudiant
    Inscrit en
    Mars 2005
    Messages
    635
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Par d�faut
    Oublies pas que c'est socket(PF_INET, SOCK_STREAM, 0) et non avec AF_INET

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2004
    Messages
    63
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 63
    Par d�faut
    Si j'ai bien compris "af_inet" est un vieux standart ?!

    J'ai donc modifi� comme ceci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    	sin.sin_family		= PF_INET;
    	sin.sin_port		= htons(80);
    	sock = socket(PF_INET,SOCK_STREAM,0);
    Mais j'ai toujours le m�me probl�me.

  4. #4
    Membre �m�rite
    Avatar de Freed0
    Profil pro
    �tudiant
    Inscrit en
    Mars 2005
    Messages
    635
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Par d�faut
    Non, laisses le sin_family � AF_INET, c'est juste qu'ils n'ont rien � voir... Je me suis fait corriger y'a 2-3 jours :

    Citation Envoy� par Emmanuel Delahaye
    C'est pas mal, mais il ne faut pas confondre AF_INET et PF_INET, m�me si cette confusion est fr�quente.

    PF = Protocol Family. C'est pour le param�tre de socket()
    AF = Address Family. C'est pour la structure d'adressage (SOCKADDR_IN).

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2004
    Messages
    63
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 63
    Par d�faut
    D'accord monsieur

    Personne ne sais d'o� peut venir le probl�me ?

  6. #6
    Membre �m�rite
    Avatar de Freed0
    Profil pro
    �tudiant
    Inscrit en
    Mars 2005
    Messages
    635
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Par d�faut
    Si t'essaies de faire �a � la place ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    r=select(sock+1, &readfds, NULL, NULL, &tv)
     
    if(r<0)
    {
        cout << "Erreur 1: " <<WSAGetLastError() << endl;
        exit(1);
    }
    else if(r==0)
    {
        cout << "Erreur 2: " << WSAGetLastError() << endl;
        exit(1);
    }
    else{
        cout << "Le proxy a répondu favorablement. Tout semble ok." << endl;
    }
    Je veux dire donner la valeur � r avant la s�rie des if, la partie avant reste comme ca

    Je vais manger et puis je tenterai de regarder tout ton code

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2004
    Messages
    63
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 63
    Par d�faut
    Merci mais �a ne semble pas changer quelque chose au r�sultat...

  8. #8
    Membre �m�rite
    Avatar de Freed0
    Profil pro
    �tudiant
    Inscrit en
    Mars 2005
    Messages
    635
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Par d�faut Re: Socket : v�rifier un proxy
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    #include <iostream>
    #include <winsock2.h>
    #include <fcntl.h>
    #include <sys/fcntl.h>
    #pragma comment(lib, "ws2_32.lib")
    using namespace std;
     
    int main()
    {
        /* Correction : Utilise la version 2,2 ;) */
        WSADATA WSAData;
        WSAStartup(MAKEWORD(2,2), &WSAData);
     
        SOCKET sock;
        SOCKADDR_IN sin;
        unsigned long nonblocking = 1;
     
        sin.sin_family		= AF_INET;
        sin.sin_addr.s_addr     = inet_addr("195.175.37.8"); 
        sin.sin_port		 = htons(80);
     
        sock = socket(PF_INET, SOCK_STREAM, 0);
     
        /* LINUX: */
        //fcntl (sock, F_SETFL, O_NONBLOCK);    
     
        /* WINDOWS: */
        if(ioctlsocket(sock, FIONBIO, &nonblocking)<0)
        {
            cout << WSAGetLastError() << endl;
            cerr << "La socket ne peut être rendu non-bloquante" << endl;
            cerr << "On continue quand même avec socket bloquante. Patience." <<endl;
        }
     
        connect(sock, (SOCKADDR *)&sin, sizeof(sin));
     
        if(WSAGetLastError() != WSAEWOULDBLOCK)
        { // LINUX : EINPROGRESS
            cout<<"Erreur 0: "<<WSAGetLastError()<<endl;
            exit(1);
        }
        else
        {
            fd_set readfds;
     
            FD_ZERO(&readfds);
            FD_SET(sock, &readfds); 
     
            struct timeval tv;
            tv.tv_sec = 2;
            tv.tv_usec = 500*1000;
            int r;
     
            r=select(sock+1, &readfds, NULL, NULL, &tv);
     
            if(r<0)
            {
                cout << "Erreur 1: "<< WSAGetLastError() << endl;
                exit(1);
            }
            else if(r==0)
            {
                cout << "Erreur 2: "<< WSAGetLastError() << endl;
                exit(1);
            }
            else
            {
                cout<<"Le proxy a répondu favorablement. Tout semble ok."<<endl; 
            }
        }
     
        WSACleanup();
     
        return 0;
    }
    C'est un peu plus clair comme �a...
    Donc je te conseille de v�rifier les valeurs retourn�es par tes fonctions, comme socket(), connect(), etc...
    Apparament le probl�me viendrait de select() qui renvoie 0.. mais je connais pas trop cette fonction

  9. #9
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2004
    Messages
    63
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 63
    Par d�faut
    Voila j'ai en peu am�lior� le code:
    -J'ai test� si la fonction "socket" se passait bien.
    -Quant � la fonction "connect", elle me renvoi l'erreur "WSAEWOULDBLOCK" vu que c'est un socket non-bloquant et �a je l'ai test�.
    -Je ne voi pas d'autre fonction � tester.


    Et j'ai toujours l'erreur : "Erreur 4 : 0" :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    #include <iostream>
    #include <winsock2.h>
    #include <fcntl.h>
    #include <sys/fcntl.h>
    #pragma comment(lib, "ws2_32.lib")
    using namespace std;
     
    int main()
    {
        WSADATA WSAData;
        WSAStartup(MAKEWORD(2,2), &WSAData);
     
        SOCKET sock;
        SOCKADDR_IN sin;
        unsigned long nonblocking = 1;
     
        sin.sin_family      	= AF_INET;
        sin.sin_addr.s_addr     = inet_addr("195.175.37.8");
        sin.sin_port       		= htons(80);
     
        if((sock = socket(PF_INET, SOCK_STREAM, 0))<0)
        {
    		cerr <<"Erreur 0: "<< WSAGetLastError() << endl;
    		exit(1);
        }
     
        /* LINUX: */
        //fcntl (sock, F_SETFL, O_NONBLOCK);   
     
        /* WINDOWS: */
        if(ioctlsocket(sock, FIONBIO, &nonblocking)<0)
        {
    		cerr <<"Erreur 1:"<< WSAGetLastError() << endl;
    		exit(1);
        }
     
        connect(sock, (SOCKADDR *)&sin, sizeof(sin));
        if(WSAGetLastError() != WSAEWOULDBLOCK)
        { // LINUX : EINPROGRESS
            cerr <<"Erreur 2: "<< WSAGetLastError() << endl;
            exit(1);
        }
     
        fd_set readfds;
        struct timeval tv;
        tv.tv_sec = 2;
        tv.tv_usec = 500*1000;
        int r;
     
        FD_ZERO(&readfds);
        FD_SET(sock, &readfds);
     
        r=select(sock+1, &readfds, NULL, NULL, &tv);
     
        if(r<0)
        {
            cerr << "Erreur 3: "<< WSAGetLastError() << endl;
            exit(1);
        }
        else if(r==0)
        {
            cerr << "Erreur 4: "<< WSAGetLastError() << endl;
            exit(1);
        }
     
        cout<<"Le proxy a répondu favorablement. Tout semble ok."<<endl;
     
        WSACleanup();
     
        return 0;
    }

  10. #10
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2003
    Messages
    3 549
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 3 549
    Par d�faut
    Je ne vois pas l'int�r�t de passer les sockets en non-bloquantes.

    Et j'ai toujours l'erreur : "Erreur 4 : 0"
    Normal.
    Le serveur auquel tu te connectes est un serveur HTTP. Selon ce protocole, c'est � toi de parler en premier.

  11. #11
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2004
    Messages
    63
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 63
    Par d�faut
    "Je ne vois pas l'int�r�t de passer les sockets en non-bloquantes." ==> Si je n'utilise pas les sockets non-bloquante, il faut environ 20 secondes � mon programme pour me dire que le proxy est mauvais...et c'est beaucoup trop pour ce que je veux faire.

    Que doit-je faire alors pour v�irifier si une ip est un proxy ou non ?

  12. #12
    Membre �prouv�
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    D�cembre 2005
    Messages
    109
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 109
    Par d�faut Re: Socket : v�rifier un proxy
    Citation Envoy� par Freed0
    Apparament le probl�me viendrait de select() qui renvoie 0.. mais je connais pas trop cette fonction
    http://www.google.fr/search?hl=fr&q=man+select
    http://www.linux-france.org/article/man-fr/man2/select-2.html
    VALEUR RENVOY�E
    En cas de r�ussite select renvoie le nombre de descrip*
    teurs dans les ensembles, qui peut �tre nul si le d�lai de
    timeout a expir� avant que quoi que ce soit d'int�ressant
    ne se produise
    . select retourne -1 s'il �choue, auquel
    cas errno contient le code d'erreur.


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
        cout<<"Le proxy a répondu favorablement. Tout semble ok."<<endl;
    J'ai une question : le serveur est cens� avoir r�pondu � quel message ?

  13. #13
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2004
    Messages
    63
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 63
    Par d�faut
    "J'ai une question : le serveur est cens� avoir r�pondu � quel message ?" ==> Bonne question :

    Au d�but j'avais fait ce programme:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	SOCKET sock;
    	SOCKADDR_IN sin;
    	sin.sin_addr.s_addr    = inet_addr("195.175.37.8");
    	sin.sin_family        = AF_INET;
    	sin.sin_port        = htons(80);
    	sock = socket(AF_INET,SOCK_STREAM,0);
     
    	if (connect(sock, (SOCKADDR *)&sin, sizeof(sin))==-1)    
    	{
    		cout<<"Mauvais proxy"<<endl;
    	}
    	else
    	{
    		cout<<"Bon proxy"<<endl;
    	}
    Il fonctionne tr�s bien sauf qu'il lui faut environ 20 secondes pour qu'il me dise "Mauvais proxy" alors un pote m'a conseill� de faire un socket non-bloquant puis faire un connect et gr�ce � la fonction select je peux choisir le time-out.

    Pour r�pondre � "Volume" : je vien de sniffer mon r�seau lors de l'ex�cution de se programme et mon programme demande un ack (accus� de recepetion) et le proxy lui renvoi un ack (si j'ai bien compris )

  14. #14
    Membre �prouv�
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    D�cembre 2005
    Messages
    109
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 109
    Par d�faut
    1/ Mon pseudo est "VoluNe" avec un N ...

    2/ Le ack renvoy� par le serveur fait parti de l'ouverture d'une connexion TCP. Ce n'est pas un paquet utilisable dans ton programme.

    3/ Si tu veux v�rifier qu'une connexion � bien �t� ouverte, v�rifie tout simplement que tu peux envoyer des donn�es. Tu peux v�rifier que tu en as re�u, mais le serveur ne va rien t'envoyer spontan�ment... Tu peux aussi v�rifier que la connexion n'a pas �t� ouverte.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    	fd_set writefds, exceptfds;
    	struct timeval tv;
    	tv.tv_sec = 2;
    	tv.tv_usec = 500*1000;
    	int r;
     
    	FD_ZERO(&writefds);
    	FD_SET(sock, &writefds);
     
    	FD_ZERO(&exceptfds);
    	FD_SET(sock, &exceptfds);
     
    	r=select(sock+1, NULL, &writefds, &exceptfds, &tv);
     
    	if (r < 0)
    	{
    		// Erreur
    	}
    	else if (0 == r)
    	{
    		// Temps écoulé
    	}
    	else
    	{
    		if (FD_ISSET(sock, &writefds))
    		{
    			// Connexion ouverte avec succès
    		}
    		else if (FD_ISSET(sock, &exceptfds))
    		{
    			// Port distant fermé
    		}
    		else
    		{
    			// Situation normalement impossible
    		}
    	}

    4/ Ne fais pas de exit(1); sans faire un WSACleanup(); avant.

  15. #15
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2004
    Messages
    63
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 63
    Par d�faut
    Merci pour tout et d�sol� pour ton pseudo...

    Derni�re petite question : Quel temps doit-je mettre � votre avis pour v�rifier si un proxy fonctionne :
    tv.tv_sec = ?;
    tv.tv_usec = ???*1000;

    Je cherche le plus petit temps possible tout en �tant sur que le proxy � bien �t� v�rifi� !

    [edit]
    Que faut-il d�j� mettre au pr�compilateur pour qu'il compile un code sur Windows et pas sur linux ?
    #if WINDOWS
    //code win
    #else
    //code linux
    #endif
    [/edit]

  16. #16
    Membre �prouv�
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    D�cembre 2005
    Messages
    109
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 109
    Par d�faut
    Citation Envoy� par vincent0
    Merci pour tout et d�sol� pour ton pseudo...

    Derni�re petite question : Quel temps doit-je mettre � votre avis pour v�rifier si un proxy fonctionne :
    tv.tv_sec = ?;
    tv.tv_usec = ???*1000;

    Je cherche le plus petit temps possible tout en �tant sur que le proxy � bien �t� v�rifi� !
    Tu peux laisser le temps par d�faut (ne pas mettre &tv dans select, la socket passera dans un �tat d'exception toute seulle au bout de quelques secondes.)
    Si tu cherche le plus petit temps possible, j'aurais tendance � dire de prendre le temps de r�ponse d'un ping, fois 1,5.

  17. #17
    Membre �m�rite
    Avatar de Freed0
    Profil pro
    �tudiant
    Inscrit en
    Mars 2005
    Messages
    635
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Par d�faut
    Citation Envoy� par vincent0
    [edit]
    Que faut-il d�j� mettre au pr�compilateur pour qu'il compile un code sur Windows et pas sur linux ?
    #if WINDOWS
    //code win
    #else
    //code linux
    #endif
    [/edit]
    Tu veux qu'il compile une certaine partie sur Windows, et une autre partie sur Linux ? Tu peux faire ca :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #ifdef (WIN32)
        #include <winsock2.h>
        // Autres entêtes nécessaires
    #else
        // Inclure les entêtes pour Linux
        typedef int SOCKET;
        typedef struct sockaddr_in SOCKADDR_IN;
        #define close(a) closesocket(a)
    #endif
    Ca te permet ici d'�crire ton code pour qu'il soit utilisable aussi par Linux. Linux reconnaitra donc SOCKET, closesocket etc...

    Maintenant il reste le code principal. Il n'y a qu'� faire la m�me chose pour WSAStartup() et c'est tout je pense.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    int main()
    {
    #ifdef (WIN32)
        int err;
        WSADATA WSAData;
        err = WSAStartup(MAKEWORD(2,2), &WSAData);
     
        if(!err)
        {
    #endif
            // Ton code
    #ifdef (WIN32)
            WSACleanup();
        }
    #endif
        return 0;
    }
    Je me permet de citer la source qui n'est autre que le site d'Emmanuel
    http://emmanuel-delahaye.developpez.com/reseaux.htm

    @+

  18. #18
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2004
    Messages
    63
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 63
    Par d�faut
    Merci

  19. #19
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    �a ne marchera pas sous Win64...

    #if defined(WIN32) || defined(WIN64)


    Enfin, c'est seulement si on tient � ce que le programme puisse �tre compil� directement pour win64. Dans le cas contraire, on le compile simplement en 32bits et on ne se fatigue pas � changer ses defines...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 21/01/2012, 00h16
  2. Curl ou socket ? Optimis� pour proxy
    Par tsukasag dans le forum Biblioth�ques et frameworks
    R�ponses: 1
    Dernier message: 11/06/2009, 17h16
  3. Socket irc via proxy
    Par Eltha dans le forum Langage
    R�ponses: 2
    Dernier message: 07/07/2008, 23h08
  4. Socket - V�rifier si le serveur est ouvert
    Par plouf3070 dans le forum Langage
    R�ponses: 1
    Dernier message: 30/03/2008, 16h04
  5. [reseaux] SOCKET - Connection via proxy
    Par Julien_ dans le forum Programmation et administration syst�me
    R�ponses: 2
    Dernier message: 17/11/2006, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo