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 :

[Debutant] Problème Socket Linux UDP


Sujet :

Réseau C

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 12
    Points : 12
    Points
    12
    Par défaut [Debutant] Problème Socket Linux UDP
    Bonjour à tous,
    Je dois faire un petit programme assez simple, c'est à dire faire communiquer un client et un serveur en UDP, j'ai lu des manuel et des tutoriaux sur les sockets, mais cela reste pour moi très obscur :/

    j'ai fais un début de serveur mais pour être franc je ne saisi pas tout ...

    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
     
    /*creation socket UDP*/
    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/socket.h>
    #include <string.h>
    #include <netinet/in.h>
     
    int main(void)
    {
    int DescrSckt;
    struct sockaddr_in this;
     
    /*bzero(&this,sizeof(this));*/
    this.sin_family = AF_INET;
    this.sin_port=htons(500);/*definition du port d'utilisation*/
    this.sin_addr.s_addr=htonl(INADDR_ANY);
     
    if((DescrSckt=socket(AF_INET, SOCK_DGRAM, 0))<0)
    	{
    	 printf("erreur lors de la creation du socket\n");
    	 exit(0);
    	}
     
    if (bind(DescrSckt,&this,sizeof(this)) < 0)
    	{
    	 printf("erreure lors du bind!\n");
    	 exit(0);
    	}
     
    return 0;
    }
    La compilation de ceci me met un warning :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    warning: passing arg 2 of `bind' from incompatible pointer type
    en fait j'aimerais quelques explication sur le code à utiliser et sur le fonctionnement de ceci car là je suis un peu perdu

    merci d'avance

  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
    il faut caster le pointeur en (struct sockaddr *)
    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 Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    De plus j'ai vu que ce programme etait pour tourner sous Linux et tu a defini le port 500 hors sous Linux l'ouverture des ports 1 à 1024 ne peut etre faites que par root. Tu ne poura donc lancer ton programme qu'en root.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    http://cs.ecs.baylor.edu/~donahoo/PocketSocket/code/UDPEchoClient.c
    http://cs.ecs.baylor.edu/~donahoo/PocketSocket/code/UDPEchoServer.c

    Note : le bouquin d'où sont extraits ces exemples est excellent (bien expliqué, pas cher, pas long à lire).
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

Discussions similaires

  1. problème de destPort (UDP) programmation socket
    Par Para_doxx dans le forum Réseau
    Réponses: 2
    Dernier message: 29/11/2013, 16h03
  2. Socket en UDP - Multicast - Chat - Problème.
    Par ExSter dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 02/09/2010, 12h48
  3. [Linux] Problème Socket + Thread
    Par PoZZyX dans le forum Réseau
    Réponses: 0
    Dernier message: 25/03/2010, 15h06
  4. problème portage ioctl socket Linux vers Windows
    Par progfou dans le forum Réseau
    Réponses: 19
    Dernier message: 06/10/2009, 19h44
  5. Problème de socket en UDP
    Par alexorcet dans le forum Réseau
    Réponses: 17
    Dernier message: 27/05/2008, 17h43

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