C# LanguagePrise asynchrone


Introduction

En utilisant des sockets asynchrones, un serveur peut écouter les connexions entrantes et faire une autre logique dans le même temps, contrairement au socket synchrone lorsqu'il écoute le thread principal et que l'application ne répond plus.

Remarques

Socket et réseau

Comment accéder à un serveur en dehors de mon propre réseau? C'est une question courante et lorsqu'elle est posée, elle est principalement marquée comme sujet.

Du côté serveur

Sur le réseau de votre serveur, vous devez transférer votre routeur sur votre serveur.

Pour un exemple de PC sur lequel le serveur est exécuté:

IP locale = 192.168.1.115

Le serveur écoute le port 1234.

Transférer les connexions entrantes sur le Port 1234 routeur vers 192.168.1.115

Côté client

La seule chose que vous devez changer est l'IP. Vous ne souhaitez pas vous connecter à votre adresse de bouclage mais à l'adresse IP publique du réseau sur lequel votre serveur est exécuté. Cette adresse IP, vous pouvez obtenir ici .

 _connectingSocket.Connect(new IPEndPoint(IPAddress.Parse("10.10.10.10"), 1234));

Alors maintenant, vous créez une requête sur ce noeud final: 10.10.10.10:1234 si vous avez fait un 10.10.10.10:1234 propriété de votre routeur, votre serveur et votre client se connecteront sans aucun problème.

Si vous voulez vous connecter à une adresse IP locale, vous n'aurez pas besoin de changer l'adresse de bouclage en 192.168.1.178 ou quelque chose comme ça.

Envoi de données:

Les données sont envoyées dans un tableau d'octets. Vous devez emballer vos données dans un tableau d'octets et les décompresser de l'autre côté.

Si vous êtes familier avec socket, vous pouvez également essayer de chiffrer votre tableau d'octets avant de l'envoyer. Cela empêchera quiconque de voler votre colis.

Prise asynchrone Exemples Liés