Créer une connexion entre 2 PC avec des sockets [Résolu]

CLeBeR_FR 301 Messages postés mercredi 22 septembre 2010Date d'inscription 27 février 2018 Dernière intervention - 16 nov. 2011 à 08:14 - Dernière réponse : cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
CLeBeR_FR 301 Messages postés mercredi 22 septembre 2010Date d'inscription 27 février 2018 Dernière intervention - 16 nov. 2011 à 18:31
3
Merci
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.

Merci CLeBeR_FR 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de CLeBeR_FR
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 16 nov. 2011 à 09:13
0
Merci
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)
Commenter la réponse de cs_Jack
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 17 nov. 2011 à 12:09
0
Merci
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.
Commenter la réponse de cs_Jack
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 17 nov. 2011 à 12:10
0
Merci
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.
Commenter la réponse de cs_Jack

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.