C# TCP 客户端发送数据超时处理 - 超时后关闭请求
下面是一个示例代码,可以实现 C# TCP 客户端发送数据到服务器,超时后关闭本次请求:
using System;
using System.Net.Sockets;
using System.Threading;
class Client
{
static void Main(string[] args)
{
TcpClient client = new TcpClient();
client.Connect('127.0.0.1', 12345); // 连接到服务器
NetworkStream stream = client.GetStream();
byte[] data = System.Text.Encoding.UTF8.GetBytes('Hello, World!'); // 要发送的数据
stream.WriteTimeout = 1000; // 设置写操作的超时时间为1秒
try
{
stream.Write(data, 0, data.Length); // 发送数据
}
catch (System.IO.IOException ex) // 如果在超时时间内未完成发送,会抛出IOException
{
Console.WriteLine('发送数据超时:' + ex.Message);
}
finally
{
client.Close(); // 关闭连接
}
}
}
在上面的代码中,我们首先创建了一个 TcpClient 对象并连接到服务器。然后获取 NetworkStream 对象,将要发送的数据转换为字节数组,并设置写操作的超时时间为1秒。
接着使用 try-catch 语句块进行数据发送,并在 catch 块中处理超时的情况。最后,在 finally 块中关闭连接。
需要注意的是,如果在超时时间内未完成发送,会抛出 IOException 异常。因此,我们需要在 catch 块中捕获并处理该异常。
原文地址: https://www.cveoy.top/t/topic/ooad 著作权归作者所有。请勿转载和采集!