C / C++ Socket error sous Linux
Résolu
Bilow
Messages postés
1193
Statut
Membre
-
Char Snipeur Messages postés 10112 Statut Contributeur -
Char Snipeur Messages postés 10112 Statut Contributeur -
Bonjour !
En m'inspirant de ce tutoriel, j'ai écrit un code serveur et un code client. Sous Windows, tout deux fonctionnent bien. Sous Linux, le client s'ouvre normalement mais le serveur renvoi une erreur.
Voici une partie du code :
Le problème est que la dernière fonction (bind) renvoi SOCKET_ERROR...
Quelles peuvent être les causes du problème ? Un pare-feu en trop ? Autre chose ?
Merci !
En m'inspirant de ce tutoriel, j'ai écrit un code serveur et un code client. Sous Windows, tout deux fonctionnent bien. Sous Linux, le client s'ouvre normalement mais le serveur renvoi une erreur.
Voici une partie du code :
SOCKET sock; SOCKADDR_IN sin; sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = htonl(INADDR_ANY); sin.sin_family = AF_INET; sin.sin_port = htons(23); sock_result = bind(sock, (SOCKADDR*)&sin, sizeof(sin));
Le problème est que la dernière fonction (bind) renvoi SOCKET_ERROR...
Quelles peuvent être les causes du problème ? Un pare-feu en trop ? Autre chose ?
Merci !
A voir également:
- Socket error linux
- Linux reader - Télécharger - Stockage
- Backtrack linux - Télécharger - Sécurité
- Linux mint 22.1 - Accueil - Linux
- Damn small linux - Télécharger - Systèmes d'exploitation
- Télécharger linux mint - Télécharger - Systèmes d'exploitation
2 réponses
Oups.. Jai passé une étape dans le tutoriel :
Vous devez être en mode administrateur (root sous linux) pour faire fonctionner un programme serveur sinon cela risque de ne pas fonctionner.
Faut compiler, ensuite :
Et là, miracle, ca marche ! :)
Vous devez être en mode administrateur (root sous linux) pour faire fonctionner un programme serveur sinon cela risque de ne pas fonctionner.
Faut compiler, ensuite :
sudo ./Serveur
Et là, miracle, ca marche ! :)
Salut.
Je fait tourner des serveur sous Linux sans être root, et ils tournent.
ça doit être prorpre à certaine distribution (genre Ubuntu non ?) ou certaines options de sécurité.
Je fait tourner des serveur sous Linux sans être root, et ils tournent.
ça doit être prorpre à certaine distribution (genre Ubuntu non ?) ou certaines options de sécurité.
Salut, j'ai testé sous Ubuntu 10.04 et 10.10, et dans les deux distribs ils faut être en mode root...
Le jour où j'aurai une autre distribution à portée de main, j'essaierai ;)
Options de sécurité : Est-ce possible qu'un pare-feu bloque l'ouverture du port, et qu'en étant en root ce bloquage de la part du pare-feu soit désactivé ? Parce qu'alors, ouvrir par défaut le pare-feu serait la solution.
Le jour où j'aurai une autre distribution à portée de main, j'essaierai ;)
Options de sécurité : Est-ce possible qu'un pare-feu bloque l'ouverture du port, et qu'en étant en root ce bloquage de la part du pare-feu soit désactivé ? Parce qu'alors, ouvrir par défaut le pare-feu serait la solution.
Le parefeu, je n'y crois pas trop : en général, il bloque le port mais n'empêche pas le serveur de tourner. Le plus simple est de le désactiver pour tester. J'ai testé sur Red Hat et Fedora. Si j'ai le temps je testerai sur ma Mandriva. Je n'en sais pas plus que ça. Pose la question directement dans le forum Linux, tu auras peut être une réponse.