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

Visual C++ Discussion :

Winsock2 et Wifi


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 16
    Par défaut Winsock2 et Wifi
    Bonjour,

    Je programme sous Visual C++ et je souhaite établir une connection UDP entre deux pc via une liaison Wifi. J'ai essayé avec Winsock2 mais ca ne marche pas en Wifi (réseau ad hoc). Par contre j'ai testé en LAN la connexion s'établit parfaitement.
    Est ce qu'il est impossible d'établir la connection en Wifi en utilisant Winsock2? Pouvez vous m'aider svp?


    Merci d'avance.
    voici le code que j'ai implémenté pour le serveur.
    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
    // IAMNet.cpp : définit le point d'entrée pour l'application console.
    //
     
    #include "stdafx.h"
    #include "IAMNet.h"
    #include <winsock2.h>
    #pragma comment(lib, "ws2_32.lib")
     
     
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
     
     
    // Seul et unique objet application
     
    CWinApp theApp;
     
    using namespace std;
     
    int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
        int nRetCode = 0;
     
        // Initialise MFC et affiche un message d'erreur en cas d'échec
        if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
        {
            // TODO : modifiez le code d'erreur selon les besoins
            _tprintf(_T("Erreur irrécupérable : l'initialisation MFC a échoué\n"));
            nRetCode = 1;
        }
        else
        {
            // TODO : codez le comportement de l'application à cet emplacement.
            WSADATA WSAData;
            SOCKET sock;
            SOCKADDR_IN clientsin;
            SOCKET csock;
            SOCKADDR_IN sin;
            SOCKADDR_IN csin;
            CHAR buff;
            WSAStartup(MAKEWORD(2,0), &WSAData);
     
            cout<<"hello\n\r";
     
            sin.sin_addr.s_addr    = INADDR_ANY;
            sin.sin_family        = AF_INET;
            sin.sin_port        = htons(50014);
            sock = socket(AF_INET,SOCK_STREAM,0);
            bind(sock, (SOCKADDR *)&sin, sizeof(sin));
            gethostname(&buff, sizeof(buff));
            listen(sock, 0);
     
            int val = 0;
     
            while(1)
            {
                int sinsize = sizeof(csin);
                if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
                {
     
                    int size = sizeof(clientsin);
                    int succes = getpeername(csock,(SOCKADDR *)&clientsin, &size);
                    int a = WSAGetLastError();
     
                    send(csock, "Hello world!\r\n", 30, 0);
                    cout<<"client connected \n\r";
                }
            }
    }
     
        return nRetCode;
    }
    voici le code que j'ai implémenter pour le client.

    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
    // iamclient.cpp : définit le point d'entrée pour l'application console.
    //
     
    #include "stdafx.h"
    #include "iamclient.h"
    #include <winsock2.h>
    #pragma comment(lib, "ws2_32.lib")
     
     
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
     
     
    // Seul et unique objet application
     
    CWinApp theApp;
     
    using namespace std;
     
    int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
        int nRetCode = 0;
     
        // Initialise MFC et affiche un message d'erreur en cas d'échec
        if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
        {
            // TODO : modifiez le code d'erreur selon les besoins
            _tprintf(_T("Erreur irrécupérable : l'initialisation MFC a échoué\n"));
            nRetCode = 1;
        }
        else
        {
            // TODO : codez le comportement de l'application à cet emplacement.
            WSADATA WSAData;
            WSAStartup(MAKEWORD(2,0), &WSAData);       
            SOCKET sock;
            SOCKADDR_IN sin;
            char *buff = new char[255];
            sin.sin_addr.s_addr    = inet_addr("180.0.0.2");
            sin.sin_family        = AF_INET;
            sin.sin_port        = htons(4148);
            sock = socket(AF_INET,SOCK_STREAM,0);
            bind(sock, (SOCKADDR *)&sin, sizeof(sin));
            connect(sock, (SOCKADDR *)&sin, sizeof(sin));
            while(1)
            {
                recv(sock, buff, sizeof(buff),0);
                cout<<buff;
            }
        }
     
        return nRetCode;
    }

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 16
    Par défaut
    Problème résolu désolé j'avais mal attribué les adresses réseaux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [infos] WiFi et sécurité
    Par barucca dans le forum Hardware
    Réponses: 5
    Dernier message: 14/06/2004, 10h38
  2. Reseau WIFI et Internet
    Par josoft dans le forum Développement
    Réponses: 5
    Dernier message: 25/02/2004, 12h32
  3. Partage ADSL sur réseau Wifi
    Par malbaladejo dans le forum Développement
    Réponses: 7
    Dernier message: 21/02/2004, 18h16
  4. [WIFI] - Modem Routeur ADSL - RNIS
    Par Joelindien dans le forum Hardware
    Réponses: 4
    Dernier message: 20/10/2003, 15h21
  5. réseau cable croisé +réseau wifi
    Par Fala fala dans le forum Développement
    Réponses: 6
    Dernier message: 24/09/2003, 13h36

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