注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

水滴石穿

破浪是阵风!

 
 
 

日志

 
 

快速测试sqlserver是否能够连接(与其他机器)  

2011-04-06 21:22:43|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Threading;

namespace CUST.CKW
{
    public class NetPortOp
 {
     private static bool IsConnectionSuccessful = false;
     private static Exception socketexception;
     private static ManualResetEvent TimeoutObject = new ManualResetEvent(false);
    
     /// <summary>
     /// 验证连接指定主机的端口
     /// </summary>
     /// <param name="host">主机IP或名称</param>
     /// <param name="port">端口号</param>
     /// <param name="timeoutMSec">超时时长(毫秒)</param>
     /// <returns>bool</returns>
     public static bool ConnValidate(string host, int port, int timeoutMSec)
     {
     bool ret = false;
    
     TimeoutObject.Reset();
     socketexception = null;
    
     TcpClient tcpclient = new TcpClient();
    
     tcpclient.BeginConnect(host, port, new AsyncCallback(CallBackMethod), tcpclient);
     if (TimeoutObject.WaitOne(timeoutMSec, false))
     {
     if (IsConnectionSuccessful)
     {
     ret = true;
     tcpclient.Client.Close();
     }
     else
     {
     //不用抛出异常,根据ret判断连接成功与否
     //throw socketexception;
     }
     }
     else
     {
     //不用抛出异常,根据ret判断连接成功与否
     //throw new TimeoutException("TimeOut Exception");
     }
    
     tcpclient.Close();
     return ret;
     }
    
     private static void CallBackMethod(IAsyncResult asyncresult)
     {
     try
     {
     IsConnectionSuccessful = false;
     TcpClient tcpclient = asyncresult.AsyncState as TcpClient;
    
     if (tcpclient.Client != null)
     {
     tcpclient.EndConnect(asyncresult);
     IsConnectionSuccessful = true;
     }
     }
     catch (Exception ex)
     {
     IsConnectionSuccessful = false;
     socketexception = ex;
     }
     finally
     {
     TimeoutObject.Set();
     }
     }
     }

}

 

应用方法:bool b=NetPortOp.ConnValidate(dr.Cells["ip"].Value.ToString(), 1433, 1000);

  评论这张
 
阅读(367)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017