Comment envoyer et recevoir des données TCP/IP à l’aide de sockets en C#

Les sockets sont de plus en plus utilisés aujourd’hui. Ils fournissent un moyen simple d’échanger des données sur le réseau. Il est utilisé, par exemple, pour échanger des messages entre utilisateurs, pour transférer des fichiers, jouer à des jeux « distribués » etc.
 
 
Les sockets étant basés sur une architecture client/serveur, l’application est composée d’un serveur et d’un client. Le serveur réservera un numéro de port. Ensuite, il écoutera tout requête cliente éventuelle. Le client tentera alors de se connecter au serveur. Une fois la connexion établie, vous pourrez échanger des messages texte. Lorsque vous avez terminé, la connexion sera fermée.
 

Socket côté serveur
using System; 
using System.Net; 
using System.Net.Sockets; 
using System.Text; 
  
namespace WayToLearnX {
	public class Server {
		public static void Main(string[] args) 
		{
			// Récupérer le nom de l'hôte
			IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName()); 
			IPAddress ip = host.AddressList[0]; 
			IPEndPoint endPoint = new IPEndPoint(ip, 9999); 

			// Création du socket TCP/IP
			Socket listener = new Socket(ip.AddressFamily, 
						 SocketType.Stream, ProtocolType.Tcp); 

			try { 
				// Associer une adresse réseau au socket serveur
				listener.Bind(endPoint); 
		  
				// Liste de clients qui voudront se connecter au serveur
				listener.Listen(10); 

				while (true) { 
					Console.WriteLine("En attente connexion...");  
					// accepter la connexion du client
					Socket client = listener.Accept(); 
		  
					// Data buffer 
					byte[] bytes = new Byte[1024]; 
					string data = null; 
		  
					while (true) { 
						int b = client.Receive(bytes);   
						data += Encoding.ASCII.GetString(bytes, 0, b); 
													 
						if (data.IndexOf("<eof>") > -1) 
							break; 
					}
		  
					Console.WriteLine("Texte reçu -> {0} ", data); 
					byte[] message = Encoding.ASCII.GetBytes("Welcome to WayToLearnX"); 
		  
					// Envoyer un message au client 
					client.Send(message); 
		  
					client.Shutdown(SocketShutdown.Both); 
					client.Close(); 
				}
			}catch (Exception e) { 
				Console.WriteLine(e.ToString()); 
			} 
		} 
	}
}

 
Programmation orientée objet en C#Programmation orientée objet en C#La programmation orientée objet (POO) est le composant principal du framework .NET. La programmation orientée objet est tellement importante avant de se lancer dans .NET,…Lire plus

Socket côté client
using System; 
using System.Net; 
using System.Net.Sockets; 
using System.Text; 
  
namespace WayToLearnX { 
	public class Client { 
		public static void Main(string[] args) 
		{ 
			try {
				// Établir une connexion sur le Port 9999 
				IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName()); 
				IPAddress ip = host.AddressList[0]; 
				IPEndPoint endPoint = new IPEndPoint(ip, 9999); 
		  
				// Créer une socket TCP/IP 
				Socket client = new Socket(ip.AddressFamily, SocketType.Stream, 
				        ProtocolType.Tcp); 
		  
				try { 
					// Connect Socket 
					client.Connect(endPoint); 
		  
					// le message à envoyer au serveur
					byte[] msg = Encoding.ASCII.GetBytes("Hello<EOF>"); 
					int byteSent = client.Send(msg); 
		  
					// Data buffer 
					byte[] messageReceived = new byte[1024]; 
		  
					// Recevoir le message 
					int byteRecv = client.Receive(messageReceived); 
					Console.WriteLine("Message du serveur -> {0}",  
						  Encoding.ASCII.GetString(messageReceived, 0, byteRecv)); 
		  
					client.Shutdown(SocketShutdown.Both); 
					client.Close(); 
				}catch (SocketException e1) {
					Console.WriteLine("SocketException : {0}", e1.ToString()); 
				}catch (ArgumentNullException e2) {
					Console.WriteLine("ArgumentNullException : {0}", e2.ToString());
				}catch (Exception e3) {
					Console.WriteLine("Unexpected exception : {0}", e3.ToString()); 
				}
			}catch (Exception e) {      
				Console.WriteLine(e.ToString()); 
			} 
		} 
	} 
}

 

Exécuter les fichiers sur un terminal ou une invite de commande

Enregistrer les fichiers avec l’extension « .cs ». Exemple : client.cs et server.cs, puis compilez les deux fichiers en exécutant les commandes suivantes:
 
Compilez le serveur:

> csc server.cs

 
Compilez le client:

> csc client.cs
qcm-csharpQCM C# – Framework .NET – Partie 1QCM sur C# avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus
Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *