Ecouter des ports TCP

Signaler
Messages postés
29
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
5 décembre 2009
-
darkhate
Messages postés
2
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
5 décembre 2009
-
Bonjour,

Je cherche a faire un programme qui écoute certains ports Tcp (je connais les numéros) en local et a chaque trame reçu je traite les informations et je les inserts dans ma base de données.

Est ce que quelqu'un peut me dire comment ecouter des ports en local, et comment récupérer les informations reçu dans chaque trame.

Merci d'avance.

Cordialement

11 réponses

Messages postés
29
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
5 décembre 2009
1
Salut je te met un exemple de code que j'ai pu faire fonctionner. il fonctionne très bien.
        private TcpListener monServeur = null;
        private TcpClient monClient = null;
        private NetworkStream monNS = null;
        int port = monBoitier.get_port();

                    try
                    {
                        monServeur = new TcpListener(port);
                        monServeur.Start();
                    }
                    catch (SecurityException)
                    {
                        return;
                    }

                    while (true)
                    {
                        try
                        {
                            monClient = monServeur.AcceptTcpClient();
                            
                            monClient.ReceiveTimeout = 15000;
                            
                            monNS = monClient.GetStream();

                            byte[] data = new byte[3072];

                            int recv;

                            try
                            {
                                while ((recv = monNS.Read(data, 0, data.Length)) != 0)
                                {
                                     // Traitement des informations propre à ton programme
                                }
                            }
                            catch (IOException ex)
                            {
                                monClient.Close();                        
                            }



J'espère que cela pourra t'aider.

Si tu as un problème reviens vers moi
Messages postés
29
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
5 décembre 2009
1
ba en faite, les données arrive sur un port du routeur par exemple le port 3000 puis dans le routeur je fais une redirection de port afin que sa arrive directement a ma machine donc si j'arrive a écouter un port TCP j'arriverai a récupérer les données.

Est ce faisable si oui comment?

Est ce que mon routeur peut pas faire office de client ???
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009

Non, ton routeur ne fait que router... Il ne sait rien faire d'autre...

Le but final est de faire quoi ? Espionner les tentatives et/ou le contenu des connexions ou espionner l'activité de programmes utilisant ces ports ?
Messages postés
29
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
5 décembre 2009
1
Ba en faite mon programme je l'explique.

J'ai un boitier GPS dans des véhicules qui m'envoient des informations sur la position de chaque véhicule. Chaque boitier GPS envoi sur un port unique. Et donc mon application doit permettre d'écouter chaque port et de récupérer le message afin d'insérer dans la base de données les informations recueillie par chaque véhicule;

Merci d'avance pour vos réponse
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009

Ce port, tu es sûr que c'est du TCP ? Ca ressemblerai plus à de l'UDP... De plus, si tu me parles de GPS, ça ressemble à du port COM...

Tes boitiers GPS sont connectés comment au réseau ?
Messages postés
29
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
5 décembre 2009
1
Oui oui c'est du TCP et se n'ai pas en port com.

Il ne sont pas connecté au réseau ils sont indépendant ont leurs a juste indiqué qu'il fallait envoyer les adresse a tel serveur (adresse ip de ma machine) et après il envoi les données.
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009

Alors, regarde la classe TcpListener qui te permettra d'écouter les connexions TCP entrantes et établir la connexion avec tes boitiers...
Messages postés
29
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
5 décembre 2009
1
Re bonjours à tous, je cherche toujours à faire mon programme mais je n'arrive pas. je ne comprend pas comment faire. Est ce que quelqu'un peut m'aider ou me montrer un exemple de code.

Merci de me venir en aide.

Cordialement
Messages postés
2
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
5 décembre 2009

bonjour

j'ai le meme blem je voudrais bien savoir skyline86 si ta pu trouver une solution

et merci d'avance
Messages postés
2
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
5 décembre 2009

merciii bcppp

je testerais et je te ferais signe ok
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009

Bonjour,

Si je ne me trompe pas, en TCP, tu ne peux pas juste écouter des trames, puisque tu dois d'abord établir une connexion... Auquel cas, regarde les classes TcpListener et TcpClient.

Si tu veux espionner les trames, tu peux essayer avec l'objet Socket voir si tu peux arriver soit à écouter les ports TCP sans les verouiller, soit descendre en dessous (Ethernet)...

Ou alors, utilise une libraire toute faite comme http://www.winpcap.org/...