3 réponses
mamiemando
Messages postés
33077
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
18 avril 2024
7 748
9 août 2012 à 19:12
9 août 2012 à 19:12
Personnellement je n'ai rien compris (ni ce que tu voulais faire, ni comment tu comptais utiliser netcat). Je ne comprends pas ce que tu veux dire quand tu dis "je veux faire communiquer deux terminaux via une communication via le même port".
Peux-tu nous expliquer le problème de départ plus clairement, car j'ai l'impression que tu pars sur une fausse piste ?
Bonne chance
Peux-tu nous expliquer le problème de départ plus clairement, car j'ai l'impression que tu pars sur une fausse piste ?
Bonne chance
bonjour, après des recherches sur internet
j'ai compri que avec netcat : je peu transmettre des données entre client et serveur via socket, et c'est exactement ce que je veu faire.
j'ai trouvé des commandes qui me permettent la transmission des donnees entre un client et un serveur.
ce que je veu faire exactement : c'est : la transmission entre plusieurs clients et 1 serveur.
j'ai compri que avec netcat : je peu transmettre des données entre client et serveur via socket, et c'est exactement ce que je veu faire.
j'ai trouvé des commandes qui me permettent la transmission des donnees entre un client et un serveur.
ce que je veu faire exactement : c'est : la transmission entre plusieurs clients et 1 serveur.
mamiemando
Messages postés
33077
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
18 avril 2024
7 748
Modifié par mamiemando le 10/08/2012 à 10:25
Modifié par mamiemando le 10/08/2012 à 10:25
j'ai compris que avec netcat : je peux transmettre des données entre client et serveur via socket, et c'est exactement ce que je veu faire.
Oui enfin disons qu'en temps normal on dit surtout au serveur d'écouter sur un port (en ouvrant un socket) et ensuite on demande au client de se connecter sur l'ip du serveur et sur ce port. Le fait d'ouvrir cette connexion crée un socket côté client (sur un port qui n'a rien à voir avec le port utilisé côté serveur).
Déjà c'est plus clair car avant tu parlais de faire communiquer deux terminaux ce qui n'avait pas vraiment de sens et d'établir une communication sur un même port (ce qui en avait encore moins). or en réseau ce n'est pas du tout ce qui se passe (cf exemple ci dessous).
Exemple : A se connecte en ssh vers B. Le serveur ssh de B écoute sur le port 22. Voici ce que je vais voir :
- sur B :
- sur A : (après avoir établi la connexion ssh)
Comme tu le vois,
- B écoute en IPv4 et IPv6 sur le port 22.
- A est connecté à B en IPv4 et utilise en local le port 33081 (d'ailleurs, A peut ainsi tout à fait avoir sa propre instance de serveur ssh qui tourne et qui écoute sur le port 22).
Je ne sais pas en quoi tu codes, ni ce que tu veux coder, mais à mon avis ce que tu cherches c'est comment établir une connexion entre deux processus. Et pour ça il faut que tu regardes comment on manipule des sockets dans le langage que tu utilises. netcat (nc) n'est qu'un outil qui permet de récupérer un flux réseau sous format texte (et réciproquement, émettre un fichier dans un flux réseau). C'est donc un moyen de faire communiquer deux processus, mais ce n'est a priori pas le plus naturel.
Bref... que veux-tu faire ?
Oui enfin disons qu'en temps normal on dit surtout au serveur d'écouter sur un port (en ouvrant un socket) et ensuite on demande au client de se connecter sur l'ip du serveur et sur ce port. Le fait d'ouvrir cette connexion crée un socket côté client (sur un port qui n'a rien à voir avec le port utilisé côté serveur).
Déjà c'est plus clair car avant tu parlais de faire communiquer deux terminaux ce qui n'avait pas vraiment de sens et d'établir une communication sur un même port (ce qui en avait encore moins). or en réseau ce n'est pas du tout ce qui se passe (cf exemple ci dessous).
Exemple : A se connecte en ssh vers B. Le serveur ssh de B écoute sur le port 22. Voici ce que je vais voir :
- sur B :
(root@B) (~) # netstat -ntlp Connexions Internet actives (seulement serveurs) Proto Recv-Q Send-Q Adresse locale Adresse distante... ... tcp 0 0 0.0.0.0:22 0.0.0.0:*... tcp6 0 0 :::22 :::*... ...
- sur A : (après avoir établi la connexion ssh)
(root@A) (~) # netstat -lapute Connexions Internet actives (serveurs et établies) Proto Recv-Q Send-Q Adresse locale Adresse distante... ... tcp 0 0 192.168.1.12:33081 B:ssh... ...
Comme tu le vois,
- B écoute en IPv4 et IPv6 sur le port 22.
- A est connecté à B en IPv4 et utilise en local le port 33081 (d'ailleurs, A peut ainsi tout à fait avoir sa propre instance de serveur ssh qui tourne et qui écoute sur le port 22).
Je ne sais pas en quoi tu codes, ni ce que tu veux coder, mais à mon avis ce que tu cherches c'est comment établir une connexion entre deux processus. Et pour ça il faut que tu regardes comment on manipule des sockets dans le langage que tu utilises. netcat (nc) n'est qu'un outil qui permet de récupérer un flux réseau sous format texte (et réciproquement, émettre un fichier dans un flux réseau). C'est donc un moyen de faire communiquer deux processus, mais ce n'est a priori pas le plus naturel.
Bref... que veux-tu faire ?