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

Linux Discussion :

Probléme avec les sockets


Sujet :

Linux

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut Probléme avec les sockets
    Bonjour a tous,
    voici mon petit programme Serveur UDP:

    #include<stdio.h>
    #include<string.h>
    #include<signal.h>
    #include<sys/time.h>
    #include<sys/socket.h>
    #include<sys/types.h>
    #include<netinet/in.h>
    #include<netdb.h>
    #define PORTS 6260 //port serveur
    int main(void)
    {
    struct sockaddr_in sin_serv; // structure pr le serveur
    struct sockaddr_in sin_clien; // structeur pr le client
    int namelen, sock_serv;
    int pid, statut,n,i,lg;
    char line[100];
    if(sock_serv=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)<0)
    {
    perror("socket" );
    return 0;
    }
    bzero(&sin_serv,sizeof(sin_serv));
    sin_serv.sin_family=AF_INET;
    sin_serv.sin_port=htons(PORTS);
    sin_serv.sin_addr.s_addr=INADDR_ANY;
    if(bind(sock_serv,(struct sockaddr *)&sin_serv,sizeof(sin_serv))<0)
    {
    perror("bind" );
    return 0;
    }
    /************ Reçevoir le message **************/
    int size_sin_clien=sizeof(sin_clien);
    n=recvfrom(sock_serv,line,strlen(line),0,(struct sockaddr *)&sin_clien,&size_sin_clien);
    printf("me message %s est bien recu sa longueur est: %d", line,strlen(line));
    return 1;
    }




    sous Linux(Ubuntu): aucune erreur MAIS lorsque je l'exécute il m'affiche une erreur: bind:Socket operation on non-socket! pourquoi cette erreur? et sa veux dire quoi? Merci

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Problème de priorité des opérateurs, voilà ce qu'il se passe quand on utilise pas les "best practices".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(sock_serv=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)<0)
    est équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(sock_serv= (socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)<0))
    or tu veux écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if((sock_serv=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))<0)
    Même erreur avec bind().

Discussions similaires

  1. un serieux problème avec les sockets
    Par dc.sara dans le forum Réseau
    Réponses: 4
    Dernier message: 23/01/2008, 16h11
  2. problèmes avec les sockets
    Par lukbutor dans le forum Réseau
    Réponses: 24
    Dernier message: 23/04/2007, 01h12
  3. Problème avec les sockets
    Par projeticq dans le forum Réseau
    Réponses: 14
    Dernier message: 19/04/2007, 09h32
  4. Problème avec les sockets et la fonction accept
    Par projeticq dans le forum Réseau
    Réponses: 6
    Dernier message: 13/04/2007, 11h37
  5. [Win32] Problème avec les sockets
    Par mickael777 dans le forum MFC
    Réponses: 3
    Dernier message: 12/08/2005, 11h15

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