IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Créer une connexion entre 2 PC avec des sockets


Sujet :

VB.NET

  1. #1
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut Créer une connexion entre 2 PC avec des sockets
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    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.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 173
    Points : 25 113
    Points
    25 113
    Par défaut
    pour le listener tu peux mettre 0.0.0.0, ca écoute alors sur toutes les ip du pc (127.0.0.1 fait peut être la même chose mais je ne suis pas sûr)

    pour le client, s'il est sur le même réseau il faut mettre l'ip locale du serveur
    pour passer par internet il faut mettre l'ip internet que tu as (http://whatismyipaddress.com/ ou autre pour la connaitre

    il faut que le firewall du client soit paramétré pour laisser passer
    par internet, il faut faire un routage vers le pc (nat)

  3. #3
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Salut,
    merci pour ta réponse !!!! J'ai essayé en local, sa marchais pas puis j'étais dégouté j'ai désactivé le par feu et tout à coup...Connecté au serveur !!!

    Hehe merci tu gère ! Par contre je vais faire comment récupérer l'IP du PC si j'ai une IP dynamique, car comme tu m'a dit c'est l'IP du serveur qu'il faut mettre sur le client et la trouver logiciellement c'est pas le problème mais c'est que le serveur l'envoie au client mais si le client ne sait pas l'IP...

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 173
    Points : 25 113
    Points
    25 113
    Par défaut
    que le client reçoive l'ip du serveur ce n'est pas possible, car il faudrait que le client se connecte d'abord et donc qu'il connaisse l'ip

    concernant l'ip dynamique, là aussi plusieurs solutions, si c'est sur un réseau local, les routeurs savent gérer des bauds statiques (enfin la freebox le fait, donc surement d'autres routeurs aussi)
    c'est à dire spécifier que telle adresse mac (identifiant unique d'une carte réseau qu'on peut obtenir via ipconfig /all) devra toujours avoir telle adresse ip (en général un réseau local est en 192.168.0.x)
    (et puis on peut toujours définir en dur l'adresse ip dans les propriétés de la carte réseau)

    si c'est par internet certains fai propose d'avoir une ip fixe (enfin free le fait )
    plus sérieusement après cette petite page de pub, tu peux prendre un nom de domaine (gratuit sur dyndns.org ou autre
    le client se connectera alors à monNomDeDomaine.dyndns.org
    car chez le gérant du nom de domaine, tu diras vers quelle ip ca va en gros (il y a des softs genre balidyndns (ou certaines box) qui détectent un changement d'ip internet pour mettre à jour le nom de domaine)

  5. #5
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Ou no-ip.org ! Je n'y avais pas pensé ! Mais entre temps, j'ai pensé a un truc

    Voici le code de mon client pour se connecter au serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            Try
                Dim IPServeur As String = My.Settings.IPServeur.ToString 
                SocketPourClient = New TcpClient(IPServeur, 80)
                LabelIPserveurNomPC.Text = IPServeur
                LabelIPserveurNomPC.ForeColor = Color.LimeGreen
            Catch ex As Exception
                MsgBox("Connexion Impossible", MsgBoxStyle.Exclamation)
    
            End Try
    J'ai eu l'idée de faire un bouton qui sauvegarde l'Ipv4 dans le Setting du client

    J'ai donc fait ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            My.Settings.IPServeur = Dns.GetHostEntry(Dns.GetHostName).AddressList(4).ToString
            My.Settings.Save()
    Afin de pouvoir utiliser le logiciel, je dois en fait mettre le client sur le PC où le serveur sera lancé plus tard, cliquer sur sauvegarder l'IP ( l'IP se sauvegarde donc dans le Setting Client ) et ensuite je met le client sur le PC qui controlera et je lance le serveur sur le PC où j'ai sauvegardé l'IP

    J'ai normalement l'Ipv4 du PC où est le serveur est lancé, sur le PC qui controle grace à la fonction Save.Setting de mon client.

    Sauf que et c'est la je pense qu'est le problème, j'ai l'impression que le Client en changeant de PC n'arrive pas à garder l'IP sauvegardé auparavent, alors que si je sauvegarde sans changer de PC, mon logiciel à bien sauvegardé l'IP et la connexion se fait .

    Donc voilà, je ne comprends pas.

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 173
    Points : 25 113
    Points
    25 113
    Par défaut
    moi je ne comprends pas ce raisonnement tordu ...

    déjà pour une connexion tcp, tu n'es pas obligé de fournir une ip, avec un nom de domaince la classe tcp fonctionne aussi

    après tu mets le nom de domaine dans un fichier ini et tu fourni ce fichier avec l'exe client
    si un jour tu veux changer le nom de domaine tu as juste à changer le fichier ini

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Comment créer une dépendance entre deux listes avec des données issus d'un tableau?
    Par efesdark dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/07/2011, 16h22
  2. Comment créer une connexion entre Delphi et une base de données ?
    Par pttangediabolik dans le forum Débuter
    Réponses: 2
    Dernier message: 29/04/2008, 14h59
  3. Créer une chaine de taille variable avec des blancs
    Par jojodu31 dans le forum Général Java
    Réponses: 5
    Dernier message: 15/04/2008, 17h38
  4. Réponses: 1
    Dernier message: 18/02/2007, 11h07
  5. Réponses: 5
    Dernier message: 08/11/2006, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo