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 :

Probleme avec sendto port unreachable


Sujet :

Réseau C

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Probleme avec sendto port unreachable
    bonjour à tous,

    J'en appelle à toute votre expertise. J'ai un petit soucis. Je fait une application client serveur en mode udp. J'envoi le paquet à un serveur via la méthode sendto sur le port 1234.
    Le serveur écoute sur le port 1234. Mais quand je sniffe avec wireshark le port est différent... Et du coup la machine distante me renvoi un icmp d'erreur destination unreachable (Port unreachable).
    sur le serveur netstat me dit bien qu'on écoute sur le port 1234...
    Je comprend pas bien ce qu'il se passe.

    Si vous avez besoin de plus de renseignements n'hésitez pas à me demander je vous fournirez les informations nécessaires.

    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
    Citation Envoyé par fardke Voir le message
    Si vous avez besoin de plus de renseignements n'hésitez pas à me demander je vous fournirez les informations nécessaires.
    Oui, le code source de l'ouverture du socket et de l'envoi des données. Ce matin en partant au travail, j'ai oublié ma boule de cristal
    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
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    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
     
     
    #define MOBI_DATA_PORT_IP 1234
    #define MOBI_CONTROL_PORT_IP 4321
     
    /* Creation de l'écoute pour le serveur */
    int creation_connexion_ecoute(int type) {
        int sock;
        struct sockaddr_in adresse_locale;
        //Creation de l'adresse d'ecoute
        memset(&adresse_locale, 0, sizeof (struct sockaddr_in));
        printf("ccreation connexion :\n");
        if (type == DATA_TYPE)
            adresse_locale.sin_port = htons(MOBI_DATA_PORT_IP);
        else if (type == CONTROL_TYPE)
            adresse_locale.sin_port = htons(MOBI_CONTROL_PORT_IP);
        else
            adresse_locale.sin_port = htons(type);
        adresse_locale.sin_family = AF_INET;
        adresse_locale.sin_addr.s_addr = htonl(INADDR_ANY);
        //Creation du socket d'ecoute
        if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
            printf("Erreur de creation du socket ip\n");
            return -1;
        }
     
        if (bind(sock, (struct sockaddr *) &adresse_locale, sizeof (struct sockaddr_in)) < 0) {
            printf("Erreur de bind ip\n");
            return -2;
        }
        printf("bind ok\n");
        return sock;
    }
     
    /* Creation de la connection pour le client */
     
    int creation_connexion_client(void* adresse_serveur) {
        int sock;
        if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
            perror("Creation socket ip serveur");
            return -1;
        }
        ((struct sockaddr_in*)adresse_serveur)->sin_port = MOBI_DATA_PORT_IP;
        return sock;
    }
    /* Ecriture pour le client */
    int ecrire(int sock, void* buff, int buflen, void* adresse) {
        struct sockaddr_in adresseDest={0};
        printf("adresse dest : %s\n", addr2str(adresse));
        if(((struct sockaddr_in*)adresse)->sin_family==AF_INET)
            printf("AF_INET\n");
        printf("port : %d\n",((struct sockaddr_in*)adresse)->sin_port);// ici le port c'est bien 1234
        adresseDest.sin_family = ((struct sockaddr_in*)adresse)->sin_family;
        adresseDest.sin_port = ((struct sockaddr_in*)adresse)->sin_port;
        adresseDest.sin_addr.s_addr = ((struct  sockaddr_in*)adresse)->sin_addr.s_addr;
        return sendto(sock, buff, buflen, 0, (struct sockaddr*) &adresseDest, sizeof (struct sockaddr_in));
    }
    /* lecture pour le serveur */ 
    int lire(int sock, void* buff, int buflen, void* adresse, int* taille) {
        return recvfrom(sock, buff, buflen, 0, (struct sockaddr *) adresse, taille);
     
    }
    Pour ce qui est de l'appel de ces fonctions c'est fait dans des threads dans le main mais si je mets tout ce sera horrible!!!

    Voilà si vous voulez d'autres renseignements dites moi!!

  4. #4
    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
    ici, il manque le htons() ce qui fait que cela partait effectivement vers un autre numéro de port
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((struct sockaddr_in*)adresse_serveur)->sin_port = htons(MOBI_DATA_PORT_IP);
    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
    .

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    C'était exactement ça. Je te remercie pour la pertinence de ta réponse et pour sa rapidité.
    Bonne soirée et SUJET RESOLU!!!!

  6. #6
    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
    Citation Envoyé par fardke Voir le message
    C'était exactement ça. Je te remercie pour la pertinence de ta réponse et pour sa rapidité.
    Avec plaisir !!

    Citation Envoyé par fardke Voir le message
    Bonne soirée et SUJET RESOLU!!!!
    Alors n'oublie pas le boton en bas
    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
    .

Discussions similaires

  1. Réponses: 7
    Dernier message: 09/06/2006, 10h38
  2. Problème avec un port
    Par baali_hacene dans le forum Réseau
    Réponses: 4
    Dernier message: 28/03/2006, 15h39
  3. probleme avec mon port agp
    Par chrysmac2003 dans le forum Composants
    Réponses: 1
    Dernier message: 17/01/2006, 17h51
  4. probleme avec la PORTE DE VIE D'UNE VARIABLE EN PHP
    Par stomerfull dans le forum Langage
    Réponses: 1
    Dernier message: 09/12/2005, 14h19
  5. probleme avec la PORTE DE VIE D'UNE VARIABLE EN PHP
    Par stomerfull dans le forum Langage
    Réponses: 2
    Dernier message: 09/12/2005, 14h17

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