c#

TcpClient在C#中的连接超时设置方法

小樊
192
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
看了该问题的人还看了