C# Socket 连接超时处理:设置 ConnectTimeout 属性
在 C# 中,可以使用 Socket 类来进行 Socket 连接。如果连接超时,可以通过设置 Socket 的 ConnectTimeout 属性来实现。
下面是一个示例代码:
using System;
using System.Net;
using System.Net.Sockets;
class Program
{
static void Main(string[] args)
{
// 创建 Socket 对象
Socket clientSocket = new Socket(SocketType.Stream, ProtocolType.Tcp);
// 设置连接超时时间为5秒
clientSocket.ConnectTimeout = 5000;
// 创建连接的IP地址和端口号
IPAddress ipAddress = IPAddress.Parse('127.0.0.1');
IPEndPoint remoteEP = new IPEndPoint(ipAddress, 8080);
try
{
// 连接服务器
clientSocket.Connect(remoteEP);
// 连接成功
Console.WriteLine('连接成功');
}
catch (SocketException ex)
{
// 连接超时
if (ex.SocketErrorCode == SocketError.TimedOut)
{
Console.WriteLine('连接超时');
}
else
{
Console.WriteLine('连接失败:' + ex.Message);
}
}
finally
{
// 关闭Socket连接
clientSocket.Close();
}
}
}
在上述代码中,首先创建一个 Socket 对象,并设置连接超时时间为 5 秒。然后创建要连接的服务器的 IP 地址和端口号。接下来,使用 Connect 方法来连接服务器。如果连接超时,将会抛出 SocketException 异常,可以通过检查 SocketErrorCode 来判断是否是连接超时。最后,无论连接成功还是失败,都要关闭 Socket 连接。
原文地址: https://www.cveoy.top/t/topic/doaB 著作权归作者所有。请勿转载和采集!