Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/09/2014, à 22:18

moi4567

[C++] Erreur bind socket!

Bonjour à tous smile

Je travail en ce moment sur un projet concernant les sockets. La fonction bin() me retourne une erreur -1 et je ne comprend pas vraiment pourquoi. J'ai pourtant déjà manipulé les sockets mais jamais pour une application serveur comme celle-ci. Voici la fonction que je créer au fur et à mesure. J'espère que vous y verrez plus clair que moi smile

int socket_creation()
{
    SOCKET sock;
    sock = socket(AF_INET, SOCK_STREAM, 0);
    if(sock == -1)
    {
        cout << "ERROR : Socket creation fail!" << endl;
        return -1;
    }

    sockaddr_in target;
    target.sin_addr.s_addr = htonl(INADDR_ANY);
    target.sin_family = AF_INET;
    target.sin_port = htons(23);

    if(bind(sock, (sockaddr*)&target, sizeof(target)) == -1)
    {
        cout << "ERROR : Socket bind fail!" << endl;
        return -1;
    }

    return 0;
}

Merci d'avance wink

Hors ligne

#2 Le 23/09/2014, à 09:48

claudius01

Re : [C++] Erreur bind socket!

Bonjour,

Avec la valeur du errno, l'erreur serait peut-être plus explicite (cf. man bind() )


Cordialement, A+
--
Claudius

Hors ligne

#3 Le 23/09/2014, à 12:00

telliam

Re : [C++] Erreur bind socket!

le port 23 doit être un port réservé


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#4 Le 23/09/2014, à 13:32

claudius01

Re : [C++] Erreur bind socket!

Effectivement, le port 23 est, sauf erreur de ma part, dédié à telnet:

# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, officially ports have two entries
# even if the protocol doesn't support UDP operations.

tcpmux          1/tcp                           # TCP port service multiplexer
echo            7/tcp
echo            7/udp
discard         9/tcp           sink null
...
telnet          23/tcp
smtp            25/tcp          mail
time            37/tcp          timserver
...
"/etc/services" [lecture-seule] 605 lignes --0%--             1,1          Haut

Hors ligne

#5 Le 23/09/2014, à 20:42

moi4567

Re : [C++] Erreur bind socket!

claudius01 a écrit :

Bonjour,

Avec la valeur du errno, l'erreur serait peut-être plus explicite (cf. man bind() )


Cordialement, A+
--
Claudius

J'ai vérifier l'errno et effectivement ce n'était pas compliqué, je ne laissais pas mon programme ne root donc forcément... errno 13, permision denied.

En tous cas merci à vous tous pour votre aide smile

Hors ligne