Créer une connexion entre 2 PC avec des sockets

Résolu
Utilisateur anonyme - 16 nov. 2011 à 08:14
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 17 nov. 2011 à 12:10
Bonjour,
je voudrais développer une application qui permet d'éteindre mon PC connecté au même réseau à l'aide d'un simple bouton, j'ai déjà crée la fonction... Mon seul gros soucis c'est que mon socket peux que se connecter en lançant mon serveur et mon client sur le même PC, mais sur mon réseau sa ne marche pas.
Voici le code qui me permet de créer le socket :

Dim sRemoteAddress As String
        Dim address As IPAddress = IPAddress.Parse("127.0.01")
        Dim tcplistener As TcpListener = New TcpListener(address, 8100)


Là où il y a marqué 127.0.0.1 , j'ai tout essayé, j'ai remplacé par l'IP de mon PC, l'IP réseau de ma Box, l'ip externe de ma Box mais rien y fait, je vous remercie d'avance pour votre aide.

4 réponses

Utilisateur anonyme
16 nov. 2011 à 18:31
Hello,
j'ai réussi pour mon réseau privé !
Donc pour le serveur c'est 0.0.0.0 à la place de 127.0.0.1

Et pour le client c'est l'IP réseau du PC où le serveur est lancé qu'il faut mettre.
Le soucis c'est que si j'ai une IP dynamique, comment puis-je faire pour récupérer l'IP réseau du PC où le serveur est lancé sachant que sa sera pas la bonne IP qui sera rentré coté client.
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 nov. 2011 à 09:13
Salut

IPAddress.Parse("127.0.01")
Je pense qu'il te manque un point dans cette adresse IP.

Déjà, il faudrait savoir si c'est du TCP ou de l'UDP.
Ensuite, il faudrait que l'on sache si le serveur que tu essayes de joindre se trouve sur le même réseau privé ou bien sur internet.

Réseau privé :
Il n'y a rien à faire/paramétrer côté client.
Côté serveur (celui qui va recevoir la demande de connexion), il faut que le pare-feu (Windows ou logiciel) autorise le serveur à se mettre en écoute sur le port X.

Par Internet :
(TCP seulement)
Il faut, en plus du premier point, que ton routeur laisse entrer les demandes de connexions qui arrivent sur le port X.
Il faut donc créer une règle de redirection NAT qui dit que si une connexion entrante arrive sur le port X, il faut l'autoriser ET la transférer sur le port X (ou Y) de la machine interne dont l'IP est 192.168.1.z (exemple)
Apparemment, tu es chez Free, mais je ne connais pas leur box.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 nov. 2011 à 12:09
As-tu essayé de mettre le nom de la machine serveur au lieu de son IP ?
Sinon, en VB6, il y a <cette magnifique source> pour gérer le broadcasting et ainsi retrouver sans effort le serveur d'un réseau privé (ne fonctionne pas over internet)
Les fichiers BAS, FRM et CLS peuvent se lire sous NotePad.
Dans le principe de cette source, ton serveur met un socket UDP en attente et envoie une requète au routeur pour signaler sa présence.
Le client envoie une demande de recherche sur ce port UDP à tout le réseau et le serveur répond.
Une fois que le serveur a répondu au client, il ne lui reste plus au client qu'à regarder le RemoteIP pour connaitre l'IP de connexion TCP.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 nov. 2011 à 12:10
Si tu parles d'une IP dynamique sur internet, il te faudra passer par le service de DynDNS, par exemple, pour que le client puisse retrouver ta connexion.
0
Rejoignez-nous