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

Réseau C Discussion :

Pb connexion socket


Sujet :

Réseau C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Pb connexion socket
    Bonjour,

    Je suis actuellement sur un petit programme de chat à travers le net.
    Je serais le serveur, j ai donc configurer ma box pour qu'elle redirige les connexions sur le port que j ai choisis(port 2000)puis je me suis inscris sur "dyndns" pour obtenir un nom de domaine afin que mon client puisse avoir mon IP.
    Mon problème vient du fait que je n arrive pas a me connecter,
    peut être cela vient il du fait que pour le moment je fait mes test en faisant tourne mon client et mon serveur sur le même pc???
    voici mes debut de code:
    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
     
     
    ////////////////SERVEUR//////////////////////////////
    #include <stdio.h>
    #include <stdlib.h>
    #include <winsock2.h>
     
    typedef int socklen_t;
     
    int main()
    {
        WSADATA WSAData;
        WSAStartup(MAKEWORD(2,2), &WSAData);
     
     
        SOCKADDR_IN sin;
        SOCKET sock;
        socklen_t recsize = sizeof(sin);
     
     
        SOCKADDR_IN csin;
        SOCKET csock;
        socklen_t crecsize = sizeof(csin);
     
        sock = socket(AF_INET, SOCK_STREAM, 0);
        sin.sin_addr.s_addr = htonl(INADDR_ANY);  
        sin.sin_family = AF_INET;                 
        sin.sin_port = htons(2000);
     
        bind(sock, (SOCKADDR*)&sin, recsize);
     
        listen(sock, 5);
     
        csock = accept(sock, (SOCKADDR*)&csin, &crecsize);
        printf("ok");
     
        WSACleanup(sock);
     
     
        return 0;
    }
    et mon 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
     
    //////////////CLIENT///////////////////
    #include <stdio.h>
    #include <stdlib.h>
    #include <winsock2.h>
     
    int main (int argc, const char * argv[])
    {
        int err;
     
        WSADATA WSAData;
        WSAStartup(MAKEWORD(2,2), &WSAData);
     
        HOSTENT *hote;
        hote = gethostbyname("monADDR.dyndns.org");
     
        SOCKET sock;
        sock = socket(AF_INET, SOCK_STREAM, 0);
     
        SOCKADDR_IN sin;
        memcpy(&sin.sin_addr.s_addr,hote->h_addr_list[0],sizeof(sin.sin_addr.s_addr));
        sin.sin_family = AF_INET;
        sin.sin_port = htons(2000);
     
        if(connect(sock, (SOCKADDR*)&sin, sizeof(sin)) != SOCKET_ERROR)
        {
            printf("\nConnexion à %s sur le port %d\n", inet_ntoa(sin.sin_addr), htons(sin.sin_port));
     
        }
     
        closesocket(sock);
        WSACleanup();
     
    }
    J'ai vérifié du coté client j'arrive bien a obtenir mon ip a partir de mon "dyndns"
    merci d avance!!

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Le problème vient probablement du fait que comme tu es en mode test/debug, ton serveur et ton client sont sur la même machine.

    Un client ne peut pas sortir vers internet (monADDR.dyndns.org) et revenir dans la box (même si les redirections sont activées). C'est une limitation que j'ai souvent rencontrée quelleque soit la box.

    Par contre (en faisant abstraction des bugs dans ton appli), ton serveur est bien visible de l'Internet. Il faut que tu le testes avec un collèque qui a un accès Internet.

    Dans ton cas, pour régler ton problème, il faut dans ton client que tu utilises "localhost" ou "127.0.0.1" pour te connecter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #ifdef DEBUG
    hote = gethostbyname("localhost");
    #else
    hote = gethostbyname("monADDR.dyndns.org");
    #endif
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    un grand merci a toi!!!!!
    je me doutais que ca poserai un probleme mais j en etais pas sur!
    je vais tester sur le pc d un collegue!
    Merci encore!!!

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

Discussions similaires

  1. [LIVEBOX] Prbleme connexion socket
    Par sorry60 dans le forum Développement
    Réponses: 3
    Dernier message: 18/12/2005, 16h23
  2. [C++] Probleme de connexion socket client à mon serveur smtp
    Par matthieu5978 dans le forum Développement
    Réponses: 2
    Dernier message: 04/12/2005, 08h19
  3. Ouvrir une connexion socket
    Par toure32 dans le forum Langage
    Réponses: 2
    Dernier message: 12/09/2005, 21h22
  4. connexion socket borland
    Par karl2mil1 dans le forum C++Builder
    Réponses: 5
    Dernier message: 26/07/2005, 08h11
  5. connexion socket asynchrone
    Par jagboys dans le forum C++Builder
    Réponses: 3
    Dernier message: 17/06/2005, 17h04

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