Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengkonfigurasi Tamat Masa Sambungan Soket dalam Rangka Kerja .NET?

Bagaimanakah Saya Boleh Mengkonfigurasi Tamat Masa Sambungan Soket dalam Rangka Kerja .NET?

Linda Hamilton
Linda Hamiltonasal
2025-01-10 12:04:41598semak imbas

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

Menguruskan Tamat Masa Sambungan Soket dalam Rangka Kerja .NET

Aplikasi rangkaian selalunya perlu mengawal masa yang dihabiskan untuk menunggu sambungan ke pelayan jauh. Tamat masa sambungan soket Rangka Kerja .NET lalai boleh menjadi agak panjang (selalunya melebihi 15 saat), membawa kepada kelewatan apabila menyambung kepada hos yang tidak bertindak balas. Artikel ini menunjukkan cara melaraskan tamat masa ini untuk meningkatkan kecekapan.

Pertimbangkan coretan kod berikut:

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

// ...

m_clientSocket.Connect(ipEnd);</code>

Gelagat lalai kaedah Connect ialah menyekat sehingga 15 saat. Untuk melaksanakan tamat masa yang lebih pendek, kami boleh memanfaatkan kelas 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>

Kod yang disemak ini memulakan percubaan sambungan tak segerak. Kaedah WaitOne menunggu selama maksimum 5 saat. Sambungan yang berjaya dalam tempoh masa ini diselesaikan dengan EndConnect. Jika sambungan gagal, soket ditutup, dan pengecualian dinaikkan, menghalang menunggu berpanjangan untuk pelayan yang tidak bertindak balas. Pendekatan ini menyediakan kaedah yang mantap dan cekap untuk mengurus tamat masa sambungan soket dalam aplikasi Rangka Kerja .NET anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengkonfigurasi Tamat Masa Sambungan Soket dalam Rangka Kerja .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