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 Discussion :

Probleme socket AF_UNIX en UDP


Sujet :

Réseau

  1. #1
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 89
    Points
    89
    Par défaut Probleme socket AF_UNIX en UDP
    Bonjour,

    debutant en C, j'ai un probleme lorsque j'essaye d'envoyer un UDP, un message d'un client vers un serveur?

    Tout d'abord voici les codes( je vous fait grâce des includes, le soucis ne vient apparemment pas de là)

    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
     
    #define SERVER_PATH "/tmp/server"
    #define BUFFER 256
     
     
     
    int main (int argc, char* argv[])
    {
    int s=0;//descripteur du socket
    struct sockaddr_un serveur;
    struct sockaddr_un client;
    char buffer[256]; //taille max du buffer
    int lenght;
     
    s=socket(AF_UNIX, SOCK_DGRAM,0);
     
    if (s<0)
    	{ printf("erreur ouverture socket,erreur %d:\n",errno);}
    serveur.sun_family=AF_UNIX;
    strcpy(serveur.sun_path,SERVER_PATH);
    int len=sizeof(serveur);
    int rc=bind(s,(struct sockaddr*)&serveur,len);
    if (rc<0 && errno !=98){printf("echec bind, erreur:%d\n",errno);}
     
    int fromlen=sizeof(client);
    lenght=recvfrom(s,buffer,BUFFER,0,(struct sockaddr*)&client,(socklen_t*)&fromlen);
     
    return 0;
    }
    Et le 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
    35
    36
    37
     
    #define BUFFER 256
    #define ADCLI "/tmp/cliso"
     
     
    int main(int argc, char *argv[])
    {
    	int sockx=0;
    	struct sockaddr_un client;
    	struct sockaddr_un serveur;
    	char buffer[]="coucou serveur";
    	printf("buffer %d\n",strlen(buffer));
     
    	sockx=socket(AF_UNIX,SOCK_DGRAM,0);
    	if (sockx<0)
    	{ printf("erreur ouverture socket,erreur %d:\n",errno);}
    	client.sun_family=AF_UNIX;
    	strcpy(client.sun_path,ADCLI);
    	int lon=sizeof(client);
    	unlink(client.sun_path);
    	int rc =bind(sockx,(struct sockaddr*) &client,lon);
    if (rc<0 && errno==98)
    	{printf("socket déja bindé");}
    else if (rc<0 && errno!=98)
    	{printf("echec bind, erreur %d \n",errno);}
    else
    	{printf("bind ok!");}
     
     
    memset(&serveur,0,sizeof(serveur));
    serveur.sun_family=AF_UNIX;
    strcpy(serveur.sun_path,"/tmp/server");
    printf("%s",serveur.sun_path);
    int envoi=sendto(sockx,buffer,15,0,(struct sockaddr*)&serveur,sizeof(serveur));
    printf("%d\n,errno :%d\n",envoi,errno);
    return 0;
    }
    et là, lorsque j'essaye d'envoyer le message au serveur, j'ai une erreur 111, pourtant mes sockets sont bien bindé dans le fichier /tmp,

    Pourriez vous m'expliquer le soucis
    cordialement

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Points : 100
    Points
    100
    Par défaut
    Salut,

    J'ai l'impression que ton code côté serveur n'est en écoute qu'une seule fois alors qu'il devrait être en écoute constante, non ?

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 370
    Points : 23 625
    Points
    23 625
    Par défaut
    Bonjour,

    Le domaine AF_UNIX, c'est celui des sockets UNIX, c'est-à-dire celui sur lequel on crée une entrée dans le catalogue du système du fichier. Donc pas du tout réseau a priori.

    IP, TCP et UDP, c'est le domaine AF_INET.

  4. #4
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 89
    Points
    89
    Par défaut
    En fait mon code etait reelement pourri.

    Merci a tous les deux de ne pas l'avoir dit...

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

Discussions similaires

  1. [Socket] Port Scanner UDP/TCP Problemes.
    Par SmoZy dans le forum Développement
    Réponses: 1
    Dernier message: 14/06/2014, 23h22
  2. Probleme Socket UDP Char 8 bits
    Par Jazys dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 09/08/2011, 17h23
  3. [Système] Probleme Socket Php
    Par Reaggaman dans le forum Langage
    Réponses: 4
    Dernier message: 01/03/2006, 18h55
  4. Problemes socket
    Par Proxius dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/07/2005, 14h25
  5. Probleme socket
    Par Spolix dans le forum Réseau
    Réponses: 6
    Dernier message: 03/10/2003, 06h50

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