string strCon = "Data Source=192.168.24.66;Initial Catalog=master;User ID=sa;password=123456;Connection Timeout=5";
#region 采用Socket方式,测试服务器链接 /// <summary> /// 采用Socket方式,测试服务器链接 /// </summary> /// <param name="host">服务器主机名或IP</param> /// <param name="port">端口号</param> /// <param name="millisecondsTimeout">等待时间:毫秒</param> /// <returns></returns> public static bool TestConnection(string host, int port, int millisecondsTimeout) { TcpClient client = new TcpClient(); try { var ar = client.BeginConnect(host, port, null, null); ar.AsyncWaitHandle.WaitOne(millisecondsTimeout); return client.Connected; } catch (Exception e) { throw e; } finally { client.Close(); } } #endregion
/// <summary> /// 数据库链接操做,可替换为你本身的程序 /// </summary> /// <param name="ConnectionString">链接字符串</param> /// <returns></returns> private static bool TestConnection(string ConnectionString) { bool result = true; try { SqlConnection m_myConnection = new SqlConnection(ConnectionString); m_myConnection.Open(); //数据库操做...... m_myConnection.Close(); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); result = false; } return result; }我这里用winForm来测试的。
private void btnSocket_Click(object sender, EventArgs e) { string strCon = "Data Source=192.168.24.566;Initial Catalog=qmaster;User ID=sa;password=123456"; string[] s=strCon.Split(';'); s = s[0].Split('='); //获取IP string strIP =s[1]; //发送数据,判断是否链接到指定ip if (TestConnection(strIP , 1433, 500)) { //链接成功 MessageBox.Show("Socket Link Succeed","链接服务器"); // 数据库操做,我这里用了链接测试。可根据你的系统自行修改 if (TestConnection(strCon)) MessageBox.Show("Sql Link Succeed","链接数据库"); else MessageBox.Show("Sql Link Failed", "链接数据库"); } else MessageBox.Show("Socket Link Failed","链接服务器"); }
版权声明:本文为博主原创文章,未经博主容许不得转载。数据库