Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengkonfigurasi Tamat Masa Sambungan Soket dalam Rangka Kerja .NET?
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!