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 :

Socket SOCK_RAW sous Code::Blocks/Windows


Sujet :

Réseau C

  1. #1
    jmv
    jmv est déconnecté
    Membre confirmé Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Points : 603
    Points
    603
    Par défaut Socket SOCK_RAW sous Code::Blocks/Windows
    Bonjour,

    J'ai un petit souci avec les sockets en mode SOCK_RAW sous Code::Blocks, la création de la socket échoue systématiquement alors que ça marche en SOCK_STREAM.
    Voici un bout de code :
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <assert.h>
    #include <winsock2.h>
     
    int main()
    {
        // mise en marche des socket
        WSADATA wsaData = {0};
        int err = WSAStartup(MAKEWORD(2,2), &wsaData);
        printf("WSAStartup() = %d\n", err);
     
        // creation d'une socket
        SOCKET sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
        printf("socket() = %d\n", sock);
        ...
    Voici ce que ça me donne en sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WSAStartup() = 0
    socket() = -1
    On voie que WSAStarup() renvoie 0, donc c'est OK de ce côté là.
    Je "link" avec la lib C:\MinGW\lib\libws2_32.a, je n'ai aucun warning, aucune erreur de compilation.
    Je ne comprends pas pourquoi la fonction socket() me renvoie toujours -1 alors que, comme je l'ai déjà écrit plus haut, ça marche bien avec SOCK_STREAM.

    Quelqu'un a une idée ?
    Merci d'avance.
    jm

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 038
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 038
    Points : 8 405
    Points
    8 405
    Par défaut
    salut,

    pour autant que je sache et sauf erreur, il me semble que Windows limite l'utilisation des sockets raw depuis XP SP2 et que la seule façon de contourner le problème est de passer par le driver/la lib winpcap (à installer)

  3. #3
    jmv
    jmv est déconnecté
    Membre confirmé Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Points : 603
    Points
    603
    Par défaut
    Salut BufferBob,

    En fuinant sur le web à la recherche de winpcap, j'ai vu qu'effectivement cette librairie est indispensable pour ce que je veux faire (des pings). Mais du coup j'ai découvert nmap et ntop qui font ce que je voulais faire.
    C'était pour un projet "d'école" alors je vais partir sur une autre voix, c'est un peu ridicule de perdre son temps à programmer des outils qui existent déjà.

    Merci pour ta réponse qui m'aura éviter de continuer sur une mauvaise voix.

    a+
    jm

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

Discussions similaires

  1. API windows sous code blocks
    Par anezvox1 dans le forum Windows
    Réponses: 2
    Dernier message: 09/09/2014, 10h12
  2. Réponses: 16
    Dernier message: 20/02/2009, 15h03
  3. [Débutant] Compiler glu.h sous Code::Blocks
    Par allanp8 dans le forum OpenGL
    Réponses: 10
    Dernier message: 18/11/2007, 01h56

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