Optimisation des délais d'attente de connexion Socket dans .NET
Les connexions de socket réseau nécessitent une gestion minutieuse des délais d'attente pour éviter le gel des applications et améliorer l'expérience utilisateur. Les tentatives de connexion prolongées ont un impact significatif sur les performances.
Approche recommandée :
La méthode la plus efficace pour définir les délais d'expiration de connexion de socket dans .NET consiste à tirer parti des opérations asynchrones avec IAsyncResult
et AsyncWaitHandle
. Cela permet un contrôle précis des tentatives de connexion.
Exemple illustratif :
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // Establish a 5-second connection timeout IAsyncResult result = socket.BeginConnect(sIP, iPort, null, null); // Await connection completion or timeout bool success = result.AsyncWaitHandle.WaitOne(5000, true); if (socket.Connected) { socket.EndConnect(result); // Proceed with socket operations } else { // Handle connection failure: close socket and raise exception socket.Close(); throw new ApplicationException("Connection to server failed."); }
Cette technique asynchrone offre une efficacité et une flexibilité supérieures par rapport aux appels Connect()
synchrones sans paramètres de délai d'attente explicites. Cela évite de bloquer le thread de l'application en attendant une connexion.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!