Maison >développement back-end >C++ >Comment puis-je configurer le délai d'expiration de Socket Connect dans .NET Framework ?

Comment puis-je configurer le délai d'expiration de Socket Connect dans .NET Framework ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-10 12:04:41644parcourir

How Can I Configure Socket Connect Timeout in .NET Framework?

Gestion des délais d'attente de connexion Socket dans .NET Framework

Les applications réseau doivent souvent contrôler le temps passé à attendre une connexion à un serveur distant. Le délai d'expiration de connexion au socket .NET Framework par défaut peut être assez long (souvent dépassant 15 secondes), entraînant des retards lors de la connexion à des hôtes qui ne répondent pas. Cet article montre comment ajuster ce délai d'attente pour une efficacité améliorée.

Considérez l'extrait de code suivant :

<code class="language-csharp">m_clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

// ...

m_clientSocket.Connect(ipEnd);</code>

Le comportement par défaut de la méthode Connect est de bloquer pendant 15 secondes maximum. Pour implémenter un délai d'attente plus court, nous pouvons exploiter la classe AsyncWaitHandle :

<code class="language-csharp">Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

// Set a 5-second connection timeout
IAsyncResult result = socket.BeginConnect(sIP, iPort, null, null);
bool success = result.AsyncWaitHandle.WaitOne(5000, true); // Wait for 5000 milliseconds (5 seconds)

if (socket.Connected)
{
    socket.EndConnect(result);
}
else
{
    // Handle connection failure
    socket.Close();
    throw new ApplicationException("Connection to server failed.");
}</code>

Ce code révisé lance une tentative de connexion asynchrone. La méthode WaitOne attend 5 secondes maximum. Une connexion réussie dans ce délai est complétée par EndConnect. Si la connexion échoue, le socket est fermé et une exception est levée, évitant ainsi les attentes prolongées des serveurs qui ne répondent pas. Cette approche fournit une méthode robuste et efficace pour gérer les délais d'attente de connexion aux sockets dans vos applications .NET Framework.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn