tcp 远程服务器,C#编程学习之使用TcpClient / BeginConnect测试远程服务器tcp端口连接-网络教程与技术
- 原文链接:hhttps://blog.csdn.net/weixin_36286567/article/details/119265325
- 有时候经常需要对一些服务器的端口进行tcp连接测试,通常使用“telnet IP地址 端口号”的方式即可,不能说这种方式不可取,只是使用起来比较麻烦,本着简单好用的目的,不如我们自己动手写一个测试tcp端口连接的小工具,顺便把代码和思路分享给大家,供需要的朋友借鉴。
使用C#测试tcp端口连接,我们肯定会想到TcpClient,然后使用tcpclient.Connect()方法,这种方法是可行的,但是有缺陷,是什么呢?使用tcpclient.Connect()方法,程序会等待该方法执行结束后才会继续执行下面的程序段,并且没有超时时间可设置,这样会大大影响程序执行的效率和时间。
如果我们使用tcpclient.BeginConnect()方法,执行效率就会提升很多,并且还可以设置程序超时时间,具体代码如下:
TcpClient tcp = new TcpClient();
var result = tcp.BeginConnect(IP或域名, 端口, null, null);
var sucess = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(2));
if (!sucess)
{
}
else
{
}
tcp.EndConnect(result);
具体代码就是这样了,实现过程就是获取用于等待异步操作完成的WaitHandle,阻止当前线程,直到当前实例收到信号,同时使用TimeSpan指定时间间隔。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2023-02-01 数据访问层里首先为什么要加上这么一句 public DBOperator DB { get; set; }
2023-02-01 javascript(js)"$"未定义是什么错误?