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 sous C, encore un topic!


Sujet :

Réseau C

  1. #1
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut socket sous C, encore un topic!
    Bonjour.

    j'ai fait deux petits programmes, un qui envoie des paquets UDP/IP et un qui en reçoit et les affiches.

    tout marche bien. Sauf que...
    dans son site, Emmanuel Delahaye précise les opération a faire pour un serveur UDP. entre autres:
    -configurer le nombre d'écoutes: listen()
    -tester la réception : select()
    Or je n'avais fais ni listen(), ni select(). uniquement un bind() suivi de recvfrom() en boucle. Et ça marchait très bien.

    J'ai voulu mettre un listen() pour suivre les conseils, et le listen me retourne une erreur. ensuite, WSAGetLastError() me précise que c'est l'erreur 10045
    WSAEOPNOTSUPP
    (10045)
    Operation not supported.
    The attempted operation is not supported for the type of object referenced. Usually this occurs when a socket descriptor to a socket that cannot support this operation, for example, trying to accept a connection on a datagram socket.
    1/
    Alors, est-ce une erreur d'Emmanuel Delahaye, et le listen ne se fait pas pour une connexion UDP, mais uniquement TCP? Ou est-ce une erreur de ma part, et dans ce cas laquelle?

    2/
    Quoi qu'il en soit, si j'ai re-tapé dans ce code aujourd'hui, c'est pour ecrire un client-server TCP. Or je ne saisis pas bien le rôle de listen(). le 2eme paramètre indique le nombre maximum de connexion simultanées. Sur quoi s'appuye-t'il pour détecter que deux connexion son différentes? sur l'adresse ip et le port de l'emmeteur du paquet?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Bonjour,
    1. Oui, c'est pour TCP uniquement (enfin, pour tous les sockets orientés connexion en fait)
    2. Pour être précis, c'est le nombre maximal de connexions en attente simultanées (c'est ce qui fait qu'un client se croit connecté alors que le serveur n'a pas encore fait de accept()). Mais je ne sais pas exactement comment elles sont différenciées.
    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.

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Biosox
    Alors, est-ce une erreur d'Emmanuel Delahaye, et le listen ne se fait pas pour une connexion UDP, mais uniquement TCP? Ou est-ce une erreur de ma part, et dans ce cas laquelle?
    C'est bien possible ! Corrigé.

    (J'avoue n'avoir fait de manips qu'en mode connecté)
    Pas de Wi-Fi à la maison : CPL

  4. #4
    Membre éprouvé Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Points : 1 210
    Points
    1 210
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    C'est bien possible ! Corrigé.

    (J'avoue n'avoir fait de manips qu'en mode connecté)
    Pourtant c'est dans le man
    Citation Envoyé par man listen
    L'appel système listen s'applique seulement aux sockets de type SOCK_STREAM ou SOCK_SEQPACKET.
    man listen

Discussions similaires

  1. Socket sous BDS2006
    Par jfdruine dans le forum Delphi .NET
    Réponses: 3
    Dernier message: 25/03/2006, 02h16
  2. socket sous windows
    Par youp_db dans le forum Windows
    Réponses: 3
    Dernier message: 29/08/2005, 15h53
  3. sockets sous visual c++
    Par loislane dans le forum MFC
    Réponses: 7
    Dernier message: 03/06/2005, 22h49
  4. Socket sous windows
    Par Higestromm dans le forum Windows
    Réponses: 20
    Dernier message: 11/01/2005, 17h47
  5. utilisation des sockets sous windows
    Par Tupac dans le forum Réseau
    Réponses: 2
    Dernier message: 21/12/2002, 18h24

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