C# 判断域名或ip+端口号 是否能正常连接?
2024-08-27 18:55:57
private static ManualResetEvent TimeoutObject = new ManualResetEvent(false); /// <summary>
/// Socket连接请求
/// </summary>
///<param name="remoteEndPoint">网络端点</param>
///<param name="timeoutMSec">超时时间</param>
public static void Connect(IPEndPoint remoteEndPoint, int timeoutMSec)
{
TimeoutObject.Reset();
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.BeginConnect(remoteEndPoint, CallBackMethod, socket);
//阻塞当前线程
if (TimeoutObject.WaitOne(timeoutMSec, false))
{
//MessageBox.Show("网络正常");
Console.WriteLine("网络正常");
}
else
{
//MessageBox.Show("连接超时");
Console.WriteLine("连接超时");
}
} //--异步回调方法
private static void CallBackMethod(IAsyncResult asyncresult)
{
//使阻塞的线程继续
TimeoutObject.Set(); } private delegate string ConnectSocketDelegate(IPEndPoint ipep, Socket sock);
private string ConnectSocket(IPEndPoint ipep, Socket sock)
{
string exmessage = "";
try
{
sock.Connect(ipep);
}
catch (System.Exception ex)
{
exmessage = ex.Message;
}
finally
{
} return exmessage;
} static void Main(string[] args)
{
string domain = "rfid.belle.cn";
Tuple<bool, string> result = GetDomainIP(domain);
if (result.Item1) {
IPAddress ip = IPAddress.Parse(result.Item2);
IPEndPoint ipep = new IPEndPoint(ip, );//IP和端口 Connect(ipep, );
} Console.ReadLine();
} private static Tuple<bool, string> GetDomainIP(string domain)
{ try
{
string Result = domain;//提取域名地址
IPHostEntry host = Dns.GetHostByName(Result);//域名解析的IP地址
IPAddress ip = host.AddressList[];
string rIP = ip.ToString();
return Tuple.Create(true, rIP);
}
catch
{
return Tuple.Create(false, "请输入正确的域名,或者您的电脑没有联互联网");
}
}
最新文章
- CoreBluetooth——IOS蓝牙4.0使用心得
- angular的DEMO(用来练习和顺便看看)
- 战胜C语言中令人头疼的问题
- mybatis集成spring的事务管理
- Hibernate逍遥游记-第10章 映射继承关系-001继承关系树中的每个具体类对应一个表
- Use StringBuilder instead of String as possible as you can.
- COJ 0650 绝世难题(一) 可爱的仙人掌
- Sql 中常用日期转换Convert(Datetime)
- UVALive 2147	Push!!(队列实现DP)
- 从数据库提取数据通过jstl显示在jsp页面上
- 错误代码: 1247 Reference &#39;startTime&#39; not supported (forward reference in item list)
- html高度塌陷以及定位的理解
- 集群相关、用keepalived配置高可用集群
- QT使用QJson生成解析Json数据的方法
- [Umbraco] 入门教程(转)
- Hibernate 、 Axis2发布
- React 生态系统:从小白到大神
- 前端 html span标签
- SQL创建视图
- mysql中如何统计某字段里某个字符的个数
热门文章
- Leecode之双指针及二分查找
- 使用 Docker-Compose 编排容器
- MVC Core 使用TagHelper扩展几个插件
- ESA2GJK1DH1K基础篇: 测试APP扫描Air202上面的二维码绑定通过MQTT控制设备(兼容SIM800)
- 洛谷P3063 [USACO12DEC]牛奶的路由Milk Routing
- TensorFlow分布式训练MNIST分类器
- pycharm默认注释与快捷键功能
- How to convert a std::string to const char* or char*?
- shell脚本监控阿里云专线网络状态,若不通通过触发阿里云的进程监控报警
- [C++基础] 变量、关键字、运算符、位操作篇