Pages : 1
#1 Le 22/09/2014, à 21:18
- moi4567
[C++] Erreur bind socket!
Bonjour à tous
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
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
Hors ligne
#2 Le 23/09/2014, à 08: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, à 11: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, à 12: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, à 19:42
- moi4567
Re : [C++] Erreur bind socket!
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
Hors ligne
Pages : 1