zoukankan      html  css  js  c++  java
  • 测试数据库服务器是否可用

    在Sql连接字符串中设置Connect Timeout无效,只能通过Socket去判断

    代码如下:

            /// <summary>
            
    /// 测试数据库服务器是否可用
            
    /// </summary>
            
    /// <param name="ip">服务器IP</param>
            
    /// <param name="port">服务器端口,一般是1433</param>
            
    /// <param name="timemout">设置超时时间,毫秒</param>
            
    /// <returns>如果数据库可用返回true,否则返回false</returns>
            static bool TestConn(string ip, int port, int timemout)
            {
                
    using (TcpClient client = new TcpClient())
                {

                    ManualResetEvent mre 
    = new ManualResetEvent(false);
                    client.BeginConnect(ip, port, 
    delegate(IAsyncResult res)
                    {
                        
    if (client.Connected)
                        {
                            mre.Set();
                            Console.WriteLine(
    "123");
                        }
                    }, 
    null);
                    ThreadPool.QueueUserWorkItem(
    delegate(object obj) { Thread.Sleep(timemout); mre.Set(); });
                    mre.WaitOne();
                    
    if (!client.Connected)
                    {
                        
    return false;
                    }
                    
    return true;
                }
            }

    测试代码:

     
                DateTime begin = DateTime.Now;
                Console.WriteLine(TestConn(
    "192.168.1.99"14332000));
                Console.WriteLine(DateTime.Now.Subtract(begin).TotalSeconds);
     

     

  • 相关阅读:
    java程序员从ThinkPad到Mac的使用习惯改变
    关于mybatis缓存配置详解
    log4j每天,每小时产生一日志文件
    $_SERVER常用
    curl抓取页面时遇到重定向的解决方法
    十三)CodeIgniter源码分析之Loader.php
    十二)CodeIgniter源码分析之Model.php
    十一)CodeIgniter源码分析之Controller.php
    十)CodeIgniter源码分析之Output.php
    九)CodeIgniter源码分析之Hook.php
  • 原文地址:https://www.cnblogs.com/mxw09/p/2116005.html
Copyright © 2011-2022 走看看