C# 给TcpClient的Connect方法设置超时时间 TimeOut

 

 

.Net 4.5的写法

try
{
// TcpClient client = new TcpClient(textBox_ip.Text.Trim(), Convert.ToInt32(textBox_port.Text.Trim()));

// TcpClient client = new TcpClient(ip.Trim(), Convert.ToInt32(port.Trim()));
TcpClient client = new TcpClient();

// client.Connect(ip.Trim(), Convert.ToInt32(port.Trim()));
if(!client.ConnectAsync(ip.Trim(),Convert.ToInt32(port.Trim())).Wait(5000))  //设置5秒超时
{
recv_text_data = "SocketException Connect Error!";
}

if (client.Connected)
{
NetworkStream serverStream = client.GetStream();

var newmsg = new SerMessage();

 

 
var client = new TcpClient();
if (!client.ConnectAsync("remotehost", remotePort).Wait(1000))
{
    // connection failure
}

 

4.5以前

复制代码
复制代码
var client = new TcpClient();
var result = client.BeginConnect("remotehost", this.Port, null, null);

var success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(1));

if (!success)
{
    throw new Exception("Failed to connect.");
}

// we have connected
client.EndConnect(result);
复制代码
复制代码

 

posted @   txwtech  阅读(2544)  评论(1编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示