CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

ecouter une socket

iscario
iscario
Niveau 7
16 mai 2010 à 08:43:02

salut,
j'aimerai dialoguer avec une appli qui écoute sur le port 6666.
Mais j'ai également besoin de récupérer les messages qu'elle émet.
Mais comment je peux faire ?
car si j'écoute le port 6666 pour récupérer les messages, lorsque je lui transmets mon message, c'est ma propre appli qui récupère les données envoyées sur le port. C'est un peu le serpent qui se mort la queue quoi.....
Comment puis-je faire ?
merci

dnob700
dnob700
Niveau 10
16 mai 2010 à 12:32:54

?

Tu écoute en TCP ou en UDP ? Que veux dire "j'aimerai dialoguer avec une appli qui écoute sur le port 6666. Mais j'ai également besoin de récupérer les messages qu'elle émet" ? est ce que dialoguer ne veut pas déjà dire récupérer les messages qu'elle émets (en plus de lui en envoyer) ? Ou alors est-ce qu'elle dialogue avec une autre application et tu veux t'insérer entre les deux ?

Si ce n'est pas le dernier cas et que l'appli écoute en TCP sur le port 6666, tu dois créer une socket et la "connecter" sur le port 6666 sur la bonne IP (peut-être localhost). En faisant ça, le système lui attribuera automatiquement un port autre, mais tu n'as pas à t'en soucier. Une fois que ta socket est connecté et si l'autre socket qui écoutait accepte ta connexion, alors vous pouvez dialoguer, i.e. chaque programme reçoit les messages envoyé par l'autre.

iscario
iscario
Niveau 7
16 mai 2010 à 19:46:30

oui j'ai oublié de préciser, c'est de l'udp.

En fait de base l'application en question dialogue avec un serveur, et j'aimerai m'insérer entre les deux, c'est exactement ca.
- d'abord je récupère les message émis par l'application puis je les transmets au serveur (donc en écoutant sur le port 6666 du client)
- et ensuite, le serveur est censé faire une réponse, réponse que je dois intercepter, et transmettre moi meme à l'application sur le port 6666 donc.
Mais le problème, c'est que si j'écoute déjà sur le port 6666 du client, je ne peut pas retransmettre d'info par dessus, sinon ca boucle...
Mon problème n'en est peut etre pas un, car je manque de connaissance en prog réseau, mais quel est la solution alors ?

dnob700
dnob700
Niveau 10
16 mai 2010 à 22:48:39

Tu ne peux pas faire ça aussi facilement. Si le client ou le serveur tourne sur ta machine, tu peux écouter tout ce qu'ils se disent. Si tu peux paramétrer le client ou le serveur, pour t'insérer entre eux il faut que tu disent (par exemple si le client est sur ta machine mais pas le serveur) au client que le serveur est sur tel port sur ta machine, port sur lequel se trouve en fait ton appli, qui retransmettra au serveur elle même en lui indiquant son adresse pour répondre (je ne sais pas quel est ton protocole et ce que les uns et les autres attendent). Si tu ne peux pas faire cette configuration, alors je ne connais pas de moyen d'aboutir à ce que tu cherche (mais je ne suis pas spécialiste).

Tu peut toujours lire ça, ça ne sera pas une perte de temps : http://beej.us/guide/bgnet/

iscario
iscario
Niveau 7
17 mai 2010 à 19:26:39

bon, et bien, je crois que je vais m'y mettre :-p

Petites questions préalables :
- depuis mon ordi A quand j'ouvre une socket pour écouter sur le port 6666 de l'ordi B, alors il s'ouvre également un port sur l'ordi A, est-il possible de récupérer le numéro de port ouvert :question:
Ou, plus simple est-ce que je peux carrément dire à ma socket à quel port accéder :question: (vu que je spécifie le port distant, mais pas le port local). En C par exemple.
- Une socket qui écoute un port peut-elle émettre également :question: Par exemple, en supposant que j'ai ouvert une socket depuis (A,6666) pour transmettre des infos vers (B,6666), est-ce que je peux être en listen en meme temps sur (A,6666) :question:

et merci dnob700 !

dnob700
dnob700
Niveau 10
17 mai 2010 à 22:28:13

bon, tout d'abord, je dois te dire que si je connais à peu près les socket TCP, je ne connais pas du tout les socket UDP, donc mes réponses sont à prendre avec précaution (mais le lien que je t'es donné est vraiment une référence en tant que tutorial sur le réseau, si ces questions t'intéresse tu devrais vraiment le lire).

"depuis mon ordi A quand j'ouvre une socket pour écouter sur le port 6666 de l'ordi B, alors il s'ouvre également un port sur l'ordi A,"

Tu ne peux pas faire ça : sur ton ordi A tu peut faire deux chose, soit ouvrir une socket qui écoute sur un port donné sur l'ordi A (et qui va attendre que quelqu'un lui envoie des informations sur ce port), soit (et en UDP la même socket peut faire ça), tu peut envoyer des donner sur un port donné sur l'ordi B. Et oui, dans ce cas là, la socket obtient aussi un numéro de port (que tu peut récupérer avec getsockname). Enfin je crois qu'elle en obtient un, mais peut-être que dans le mode déconnecté, dès que l'envoi est terminé, elle n'a plus de port attribué. C'est à voir avec quelqu'un qui connait les socket UDP.

"- Une socket qui écoute un port peut-elle émettre également :question: Par exemple, en supposant que j'ai ouvert une socket depuis (A,6666) pour transmettre des infos vers (B,6666), est-ce que je peux être en listen en meme temps sur (A,6666) :question: "

En TCP, non, pas du tout. Soit tu mets une socket en listen, et alors quand quelqu'un se connecte et que tu accepte la socket obtient un nouveau port et elle peut recevoir et envoyé des donné, soit tu connecte la socket à un client (mais alors tu ne choisis pas son port en local généralement, même si tu pourrais le faire, mais c'est une mauvaise idée) mais alors elle ne peut pas être en mode "listen". En UDP, je ne vois pas ce que ça veut dire d'être "listen", donc je ne peux pas te répondre.

iscario
iscario
Niveau 7
19 mai 2010 à 00:50:04

merci bcp dnob!

sebcopin
sebcopin
Niveau 10
19 mai 2010 à 12:11:41

Je comprends pas trop ce que tu veux faire mais bon... Tu peux utiliser Wireshark pour faire une écoute de ton périphérique réseau, et donc le port 6666 en UDP par la même occasion.
Tu auras les différentes trames échangées.

Ciao

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment