Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Aide sur Pont TCP/IP entre Application UDP

2 réponses
Avatar
Hauguel Arnaud
Bonjour

bon c'est clair on va faire plus simple (?) :

---- Le Logiciel A Etudier ----
Partie Client : TechClient
Partie Serveur : TechServeur
--------------------------------

---- Mon Programme A Réaliser ----
Partie Client : ProgClient
Partie Serveur : ProgServeur
----------------------------------------

Sur l'ordinateur client il y a :

- le logiciel (TechClient) qui envoi des paquets UDP que je doit ecouter et
modifier
- Mon Programme (ProgClient) qui lui ecoute tous les paquets de TechClient
et les modifient et les envois

Sur l'ordinateur Serveur il y a :

- le logiciel (TechServeur) qui recois des paquets UDP de la partie Client
(TechClient)
- Mon Programme (ProgServeur) qui lui ecoute tous les paquets de TechServeur
et les modifient et les envois

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
ENVOI DE DONNEES DEPUIS LE LOGICIEL CLIENT VERS SON SERVEUR

Avant :

TechClient => Paquets UDP ~~~ INTERNET ~~~ TechServeur

Apres :

TechClient => ProgClient => TCP ~~ INTERNET ~~ ProgServeur => TechServeur

ENVOI DE DONNEES DEPUIS LE LOGICIEL SERVEUR VERS SON CLIENT

Avant :

TechServeur => Paquets UDP ~~~ INTERNET ~~~ TechClient

Apres :

TechServeur => ProgServeur => TCP ~~ INTERNET ~~ ProgClient => TechClient

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

Voila donc Sur le Client :

il faut que mon programme ecoute tout se qu'envoi et recois TechClient sur
le port 11600 UDP. Si un paquet est recu en TCP/IP ProgClient doit le lire
verifie grace a des regles si le paquet est correct et l'envoyer a
TechClient en Local.
Si un paquet est Envoyer depuis TechClient en UDP alors ProgClient doit le
lire verifie grace a des regles si le paquet est correct et l'envoyer a
ProgServeur en TCP/IP sur internet.

Sur le Serveur :

il faut que mon programme ecoute tout se qu'envoi et recois TechServeur sur
le port 11600 UDP. Si un paquet est recu en TCP/IP ProgServeur doit le lire
verifie grace a des regles si le paquet est correct et l'envoyer a
TechServeur en Local.
Si un paquet est Envoyer depuis TechServeur en UDP alors ProgServeur doit le
lire verifie grace a des regles si le paquet est correct et l'envoyer a
ProgClient en TCP/IP sur internet.


En Gros je veux juste annuler le lien entre TechClient et TechServeur qui
est en UDP et le remplacer par un lien en TCP/IP par mon Application
Client/Serveur (ProgClient et ProgServeur). De plus je veux pouvoir analyser
les paquets qui sont envoyer entre les deux mais sa c'est simple encore une
fois les connections faite entre TechClient/ProgClient et
TechServeur/ProgServeur.

Aider moi à réalisé la connections de mon application avec le logiciel
client s'il vous plait ! :( Si qq a de la doc ou un bout de code ou un
exemple ... enfin quoi que se sois Merci de me Mailer @ Ceticah@hotmail.com
ou de repondre ici

Encore Merci !


----------------------------------------------------------------------------
--------------------------------------------------
1ere Version :

Voila je vous explique se que je cherche a faire :

- J'ai une appli Client/Server qui utilise Exclusivement le protocole UDP
(helas).
- Je connais le port utiliser (11600) et je peux le modifier des 2 cotés.
- De meme je peux modifier l'adresse de connection du Client.
- Je cherche a créé un pont, donc une application Client/Serveur.
- Pour info je peux modifier le port UDP du Client et du Serveur
- Je passe par un Routeur donc je peux géré les routages de ports entre les
2 APPLI (port 10600 -> 50 ...)

- Voici un diagramme rapide de se que je cherche à réalisé :

Application Client envoi les paquets UDP sur le port 11600 en
local(127.0.0.1)
|-- Mon Application local les Receptionnent (UDP:11600) et les
envoient à mon Serveur en TCP/IP sur le port 5000 par exemple

De L'autre Coter Mon Application Serveur Receptionne les paquets TCP/IP
sur le port 5000 et les renvoi en UDP sur le port 11600 à l'Appli Serveur en
local
|-- L'appli Serveur les Receptionnent (UDP:11600) et les traitent ...
Apres elle renvoi les Paquets UDP sur le port 11600
|-- Mon Application Serveur Receptionnent les paquets UDP et
les renvoient sur le port TCP/IP 5000


Je souhaite simplement créé une passerelle TCP/IP entre l'APPLI CLIENT et
l'APPLI SERVEUR qui travaillent qu'en UDP.

J'ai donc penser a créé un Controle Winsock Udp pour ecouter sur le port
11600 mais je ne connais pas encore bien ce protocole :-/
Le lien entre les 2 application en TCP/IP lui fonctionne bien.

Le Probleme est que le serveur UDP lui gére le Multi connection. donc
j'aimerais savoir comment sont géré les paquet ? par rapport a l'ip qu'il
contiennent ?

Si quelqu'un a des infos sur le protocole UDP et VB ? comment recevoir les
paquets ? enfin plein d'info pour m'aider, des bouts de codes, .... Merci
beaucoup !

Arnaud

2 réponses

Avatar
François Picalausa
Bonjour/soir,

La méthode utilisée est la même que celle pour les filtres antispam et que
pour divers antivirius:
On force le client mail à se connecter sur 127.0.0.1 sur le port x. Le
filtre antispam écoute sur 127.0.0.1 sur le port x.
Quand il reçoit une demande de connexion, il se connecte au serveur "réel".
Dans les filtres de mails, il modifie le nom d'utilisateur dans le logiciel
client originel pour la connexion et se base là dessus pour retrouver ce
serveur.

Par exemple:

Nom avant: toto
Serveur avant: www.toto.com
Port avant: 154

Nom après: toto;www.toto.com;154
Serveur après: 127.0.0.1
Port après: x (où ton logiciel écoute)

ensuite, il te suffit de modifier les paquets à la volée et de les
transférer.

Le principe est à peu près le même sur le serveur sauf que c'est le serveur
déjà en place qui écoute sur 127.0.0.1, port x ou y et c'est tou application
qui intercepte les paquets en écoutant sur le port d'origine qui aura été
retrouvé dans le "nom" chez le client.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Hauguel Arnaud" a écrit dans le
message de news:%

Sur l'ordinateur client il y a :

- le logiciel (TechClient) qui envoi des paquets UDP que je doit
ecouter et modifier
- Mon Programme (ProgClient) qui lui ecoute tous les paquets de
TechClient et les modifient et les envois

Sur l'ordinateur Serveur il y a :

- le logiciel (TechServeur) qui recois des paquets UDP de la partie
Client (TechClient)
- Mon Programme (ProgServeur) qui lui ecoute tous les paquets de
TechServeur et les modifient et les envois

//////////////////////////////////
ENVOI DE DONNEES DEPUIS LE LOGICIEL CLIENT VERS SON SERVEUR

Avant :

TechClient => Paquets UDP ~~~ INTERNET ~~~ TechServeur

Apres :

TechClient => ProgClient => TCP ~~ INTERNET ~~ ProgServeur =>
TechServeur

ENVOI DE DONNEES DEPUIS LE LOGICIEL SERVEUR VERS SON CLIENT

Avant :

TechServeur => Paquets UDP ~~~ INTERNET ~~~ TechClient

Apres :

TechServeur => ProgServeur => TCP ~~ INTERNET ~~ ProgClient =>
TechClient


Avatar
Hauguel Arnaud
Merci de votre réponse déjas,

Alors pour information, j'ai essayé de faire une appli client serveur oui,
du moins déjas l'application client toute bête avec un winsock qui écoute,
et un qui renvoi en UDP tout bête vers le serveur, seulement je me retrouve
a avoir tout de même mon winsock_UDP_Reception_logiciel qui reçois les
paquets de mon Winsock_UDP_Envoi_Serveur et inversement, je ne comprend pas
et en plus cela empêche le logiciel client de se connecter au serveur
forcement :) donc comment marche exactement le system UDP pour le bind ?

j'ai pourtant dit a mon premier winsock écouter le port 25000 et le deuxième
winsock être sur le port 11000 ... ?

voila mon code ou est l'erreur ? ( je rappelle la c'est juste un pont en UDP
pour voir se qui passe)
l'application essaye de se connecter mais je reçois rien du tout :'( rien
qui se passe dans ma textbox et donc rien sur le reste du serveur. ..

## DEBUT CODE ##
Private Sub versclient_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
versclient.GetData strData
txtOutputClient.Text = txtOutputClient.Text & strData
versserveur.SendData strData
End Sub


Private Sub Form_Load()


'** versclient est le winsock pour recevoir et envoyer
'** vers le client qui est sur la machine meme donc
'** je met le localhost et le port pour recevoir (25000)

With versclient
' IMPORTANT: be sure to change the RemoteHost
' value to the name of your computer.
.RemoteHost = "127.0.0.1"
.RemotePort = "25000" ' Port to connect to.
.Bind 1002 ' Bind to the local port.
End With


'** versserveur est le winsock pour recevoir et envoyer
'** vers le serveur qui est sur la machine sur le reseau
'** je met l'ip de la machine et son port pour recevoir (11677)

With versserveur
' IMPORTANT: be sure to change the RemoteHost
' value to the name of your computer.
.RemoteHost = "192.168.10.95"
.RemotePort = "11677" ' Port to connect to.
.Bind 1001 ' Bind to the local port.
End With

End Sub

Private Sub versserveur_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
versserveur.GetData strData
TxtOutputServer.Text = TxtOutputServer.Text & strData
versclient.SendData TxtOutputServer.Text
End Sub

## FIN CODE ##

"François Picalausa" a écrit dans le message de
news:%
Bonjour/soir,

La méthode utilisée est la même que celle pour les filtres antispam et que
pour divers antivirius:
On force le client mail à se connecter sur 127.0.0.1 sur le port x. Le
filtre antispam écoute sur 127.0.0.1 sur le port x.
Quand il reçoit une demande de connexion, il se connecte au serveur


"réel".
Dans les filtres de mails, il modifie le nom d'utilisateur dans le


logiciel
client originel pour la connexion et se base là dessus pour retrouver ce
serveur.

Par exemple:

Nom avant: toto
Serveur avant: www.toto.com
Port avant: 154

Nom après: toto;www.toto.com;154
Serveur après: 127.0.0.1
Port après: x (où ton logiciel écoute)

ensuite, il te suffit de modifier les paquets à la volée et de les
transférer.

Le principe est à peu près le même sur le serveur sauf que c'est le


serveur
déjà en place qui écoute sur 127.0.0.1, port x ou y et c'est tou


application
qui intercepte les paquets en écoutant sur le port d'origine qui aura été
retrouvé dans le "nom" chez le client.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Hauguel Arnaud" a écrit dans le
message de news:%
>
> Sur l'ordinateur client il y a :
>
> - le logiciel (TechClient) qui envoi des paquets UDP que je doit
> ecouter et modifier
> - Mon Programme (ProgClient) qui lui ecoute tous les paquets de
> TechClient et les modifient et les envois
>
> Sur l'ordinateur Serveur il y a :
>
> - le logiciel (TechServeur) qui recois des paquets UDP de la partie
> Client (TechClient)
> - Mon Programme (ProgServeur) qui lui ecoute tous les paquets de
> TechServeur et les modifient et les envois
>
> //////////////////////////////////
> ENVOI DE DONNEES DEPUIS LE LOGICIEL CLIENT VERS SON SERVEUR
>
> Avant :
>
> TechClient => Paquets UDP ~~~ INTERNET ~~~ TechServeur
>
> Apres :
>
> TechClient => ProgClient => TCP ~~ INTERNET ~~ ProgServeur =>
> TechServeur
>
> ENVOI DE DONNEES DEPUIS LE LOGICIEL SERVEUR VERS SON CLIENT
>
> Avant :
>
> TechServeur => Paquets UDP ~~~ INTERNET ~~~ TechClient
>
> Apres :
>
> TechServeur => ProgServeur => TCP ~~ INTERNET ~~ ProgClient =>
> TechClient