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指定时间间隔。