Utiliser l’erreur du serveur DNS

J’ai un projet de bureau à distance, besoin de se connecter en utilisant un serveur DNS

J’ai une erreur en disant que le format de ip et invalide

private static void ConnectToServer() { int attempts = 0; while (!clientSocket.Connected) { try { attempts++; Console.WriteLine("Connection attempt " + attempts); // clientSocket.Connect(IPAddress.Parse(Dns.GetHostAddresses("kamikazehc.ddns.net")), port); clientSocket.Connect(IPAddress.Parse("kamikazehc.ddns.net"), port); Thread.Sleep(100); } catch (SocketException) { Console.Clear(); } } Console.Clear(); Console.WriteLine("Connected"); } 

Modifier:

Ce code rest dans l’utilisateur externe, mon ordinateur fonctionne en tant qu’administrateur.

Lorsque l’utilisateur exécute la console, il doit se connecter avec kamikazehc.ddns.net, (mon ordinateur)

Kamikazehc.ddns.net résout le 189.6.26.203.

Je ne peux que me connecter localement en utilisant:

 clientSocket.Connect(IPAddress.Parse("192.168.1.102"), port); 

Lorsque l’utilisateur se connecte à mon ordinateur, il doit apparaître dans cette liste:

http://prntscr.com/dpelr6

 private static Socket clientSocket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); private const int port = 100; // same as server port 

Vous devez utiliser Dns.GetHostEntry pour résoudre le nom de domaine en adresse IP.

IPAddress.Parse convertit uniquement une chaîne d’adresse IP en une instance IPAddress.

essayer

 clientSocket.Connect(Dns.GetHostEntry("kamikazehc.ddns.net").AddressList[0], port); 

Remarque: la première adresse IP renvoyée dans l’entrée hôte est utilisée pour se connecter.

Modifier:
D’après les commentaires: Votre problème est dû au fait que vous ne comprenez pas clairement le fonctionnement du réseau TCP IP. vous devez résoudre le nom à votre adresse IP locale. normalement, les adresses IP publiques ne fonctionneront pas dans le réseau local. Vous pouvez faire ce qui suit.

Ajouter une entrée d’hôte dans le fichier system32 / etc / drivers / hosts

 192.168.1.102 kamikazehc.ddns.net 

Mieux encore, vous pouvez modifier les entrées d’hôte de votre serveur DNS pour obtenir une résolution différente pour le réseau interne. Mais je ne vous le recommande pas à votre niveau maintenant. Si vous avez un administrateur pour le réseau, vous pouvez lui demander de le faire pour vous. alors vous n’avez pas besoin de l’entrée hôte.

Si vous ne parvenez pas à vous connecter avec le code ci-dessus depuis un réseau externe, vous devez vérifier les parameters du pare-feu.