Socket de type Unix/Stream
Fermé
vih-10
Messages postés
11
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
2 janvier 2015
-
Modifié par vih-10 le 2/01/2015 à 17:58
mamiemando Messages postés 33140 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 7 juin 2024 - 3 janv. 2015 à 21:15
mamiemando Messages postés 33140 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 7 juin 2024 - 3 janv. 2015 à 21:15
A voir également:
- Socket de type Unix/Stream
- Popcorn stream - Télécharger - TV & Vidéo
- Ace stream - Télécharger - Lecture
- Stream mis en pause discord - Forum Audio
- Fichier executable unix ✓ - Forum MacOS
- Faiblesse type spectre ✓ - Forum Jeux vidéo
1 réponse
mamiemando
Messages postés
33140
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
7 juin 2024
7 756
3 janv. 2015 à 21:15
3 janv. 2015 à 21:15
Disons que la question est un peu vague.
Ce qu'il faut savoir, c'est que sous linux, un socket se manipule comme un fichier (tu peux donc l'ouvrir, écrire dedans, lire dedans, et le fermer). Contrairement à windows, les sockets sont matérialisés par un fichier.
Un exemple concret de socket
Afin de t'expliquer un peu ce qui se passe, je vais illustrer mon propos au travers d'un exemple concret et réel : un serveur de base de donnée mysql. Le fichier
Regardons maintenant un peu comment mysql est instancié :
Comme tu le vois, mysql est lancé et lancé en prenant en paramètre le chemin de son fichier socket ainsi que le port sur lequel il écoute. Ce qu'on attend de toi dans ton exercice, c'est de faire de même : étant donnés un port et un chemin socket fourni en paramètre, on te demande d'ouvrir le port correspondant.
Si cela marche tu devrais être en mesure d'observer sur ta machine que ce port est ouvert :
Ouvrir un socket
Le mieux c'est maintenant de lire un cours :
http://sdz.tdct.org/sdz/les-sockets.html
... puis faire un tutoriel, par exemple celui ci, qui montre un exemple simple d'un client et d'un serveur :
https://www.thegeekstuff.com/2011/12/c-socket-programming/
Une fois que tu auras compris comment modifier cet exemple pour répondre à ton problème, passer par un fichier socket sera une formalité.
Bonne chance
Ce qu'il faut savoir, c'est que sous linux, un socket se manipule comme un fichier (tu peux donc l'ouvrir, écrire dedans, lire dedans, et le fermer). Contrairement à windows, les sockets sont matérialisés par un fichier.
Un exemple concret de socket
Afin de t'expliquer un peu ce qui se passe, je vais illustrer mon propos au travers d'un exemple concret et réel : un serveur de base de donnée mysql. Le fichier
/var/run/mysqld/mysqld.sockest le socket sur lequel écoute par défaut un serveur mysql sous debian. Dans cet exemple, le répertoire /var/run/mysqld appartient à l'utilisateur "mysql", et comme "mysql" est lancé par ce même utilisateur tout va bien.
Regardons maintenant un peu comment mysql est instancié :
(mando@velvet) (~) $ ps aux | grep mysql
...
mysql 1359 0.0 0.5 558148 47400 ? Sl 15:53 0:09 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
...
Comme tu le vois, mysql est lancé et lancé en prenant en paramètre le chemin de son fichier socket ainsi que le port sur lequel il écoute. Ce qu'on attend de toi dans ton exercice, c'est de faire de même : étant donnés un port et un chemin socket fourni en paramètre, on te demande d'ouvrir le port correspondant.
Si cela marche tu devrais être en mesure d'observer sur ta machine que ce port est ouvert :
(mando@velvet) (~) $ netstat -ntlp | grep 3306
(Tous les processus ne peuvent être identifiés, les infos sur les processus
non possédés ne seront pas affichées, vous devez être root pour les voir toutes.)
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
Ouvrir un socket
Le mieux c'est maintenant de lire un cours :
http://sdz.tdct.org/sdz/les-sockets.html
... puis faire un tutoriel, par exemple celui ci, qui montre un exemple simple d'un client et d'un serveur :
https://www.thegeekstuff.com/2011/12/c-socket-programming/
Une fois que tu auras compris comment modifier cet exemple pour répondre à ton problème, passer par un fichier socket sera une formalité.
Bonne chance