Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengkonfigurasi Tamat Masa Sambung Soket dengan Cekap dalam .NET?

Bagaimana untuk Mengkonfigurasi Tamat Masa Sambung Soket dengan Cekap dalam .NET?

Susan Sarandon
Susan Sarandonasal
2025-01-10 10:53:46315semak imbas

How to Efficiently Configure Socket Connect Timeouts in .NET?

Mengoptimumkan Tamat Masa Sambungan Soket dalam .NET

Sambungan soket rangkaian memerlukan pengurusan tamat masa yang teliti untuk mengelakkan aplikasi terhenti dan meningkatkan pengalaman pengguna. Percubaan sambungan yang berpanjangan memberi kesan ketara kepada prestasi.

Pendekatan Disyorkan:

Kaedah paling berkesan untuk menetapkan tamat masa sambungan soket dalam .NET melibatkan memanfaatkan operasi tak segerak dengan IAsyncResult dan AsyncWaitHandle. Ini membolehkan kawalan tepat ke atas percubaan sambungan.

Contoh Ilustrasi:

<code class="language-csharp">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.");
}</code>

Teknik tak segerak ini menawarkan kecekapan dan fleksibiliti unggul berbanding panggilan Connect() segerak tanpa tetapan tamat masa yang jelas. Ia menghalang urutan aplikasi semasa menunggu sambungan.

Atas ialah kandungan terperinci Bagaimana untuk Mengkonfigurasi Tamat Masa Sambung Soket dengan Cekap dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn