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, "请输入正确的域名,或者您的电脑没有联互联网");
}
}

最新文章

  1. CoreBluetooth——IOS蓝牙4.0使用心得
  2. angular的DEMO(用来练习和顺便看看)
  3. 战胜C语言中令人头疼的问题
  4. mybatis集成spring的事务管理
  5. Hibernate逍遥游记-第10章 映射继承关系-001继承关系树中的每个具体类对应一个表
  6. Use StringBuilder instead of String as possible as you can.
  7. COJ 0650 绝世难题(一) 可爱的仙人掌
  8. Sql 中常用日期转换Convert(Datetime)
  9. UVALive 2147 Push!!(队列实现DP)
  10. 从数据库提取数据通过jstl显示在jsp页面上
  11. 错误代码: 1247 Reference &#39;startTime&#39; not supported (forward reference in item list)
  12. html高度塌陷以及定位的理解
  13. 集群相关、用keepalived配置高可用集群
  14. QT使用QJson生成解析Json数据的方法
  15. [Umbraco] 入门教程(转)
  16. Hibernate 、 Axis2发布
  17. React 生态系统:从小白到大神
  18. 前端 html span标签
  19. SQL创建视图
  20. mysql中如何统计某字段里某个字符的个数

热门文章

  1. Leecode之双指针及二分查找
  2. 使用 Docker-Compose 编排容器
  3. MVC Core 使用TagHelper扩展几个插件
  4. ESA2GJK1DH1K基础篇: 测试APP扫描Air202上面的二维码绑定通过MQTT控制设备(兼容SIM800)
  5. 洛谷P3063 [USACO12DEC]牛奶的路由Milk Routing
  6. TensorFlow分布式训练MNIST分类器
  7. pycharm默认注释与快捷键功能
  8. How to convert a std::string to const char* or char*?
  9. shell脚本监控阿里云专线网络状态,若不通通过触发阿里云的进程监控报警
  10. [C++基础] 变量、关键字、运算符、位操作篇