溫馨提示×

TcpClient在C#中的連接超時設置方法

c#
小樊
537
2024-08-29 20:05:33
欄目: 編程語言

在C#中,使用TcpClient類可以實現TCP客戶端的功能

using System;
using System.Net;
using System.Net.Sockets;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // 創建一個TcpClient實例
            TcpClient tcpClient = new TcpClient();

            // 設置連接超時時間(單位:毫秒)
            int timeout = 5000;

            // 異步連接服務器
            IAsyncResult result = tcpClient.BeginConnect("127.0.0.1", 8080, null, null);

            // 等待連接成功或超時
            bool success = result.AsyncWaitHandle.WaitOne(timeout);

            if (success)
            {
                Console.WriteLine("連接成功");

                // 結束異步連接
                tcpClient.EndConnect(result);

                // 這里可以添加與服務器通信的代碼

                // 關閉TcpClient
                tcpClient.Close();
            }
            else
            {
                Console.WriteLine("連接超時");

                // 取消連接
                tcpClient.Close();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("發生異常: " + ex.Message);
        }
    }
}

在這個示例中,我們首先創建了一個TcpClient實例。然后,我們使用BeginConnect方法異步連接到服務器。接下來,我們使用AsyncWaitHandle.WaitOne方法等待連接成功或超時。如果連接成功,我們調用EndConnect方法結束異步連接,并繼續與服務器通信。如果連接超時,我們關閉TcpClient實例并取消連接。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女