c# 如何检测是否能连通某个网站? 我的软件通过WEB SERVICE访问另外一个网络上的网站取得数据,当另一个网站有异常时,我的软件也出现错误。请问:c# 如何检测是否能连通某个网站? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 服务端用socket或tcpclient连接目标网站,默认的端口是80,public bool checkService(){using (System.Net.Sockets.TcpClient tcpSocket = new System.Net.Sockets.TcpClient()) { AsyncCallback ConnectCallback = null; IAsyncResult async = tcpSocket.BeginConnect("www.baidu.com", 80, ConnectCallback, null); DateTime startTime = DateTime.Now; do { System.Threading.Thread.Sleep(100); if (async.IsCompleted) break; } while (DateTime.Now.Subtract(startTime).TotalSeconds < 8);//8代表超时的时间, if (async.IsCompleted) { tcpSocket.EndConnect(async); tcpSocket.Close(); return true; } else { return false; } }}自己再加上try catch 就可以了 可以把超时调的小一点,如2秒,返回true为可以连接,false为不能连接。 /// <summary> /// 测试指定IP是否能够连接 /// </summary> /// <param name="ip"></param> /// <returns></returns> public static bool TestConnect(string ip) { bool result = false; IPAddress ipAddress; if (IPAddress.TryParse(ip, out ipAddress)) { using (Ping ping = new Ping()) { if (ping.Send(ipAddress, 1000).Status == IPStatus.Success) { result = true; } } } return result; } 加上using System.Net;using System.Net.NetworkInformation; 比较罕见的二进制文件读取写入的问题,非常非常非常奇怪的异常 关于 AcceptTcpClient 的问题 哪位兄弟有c#高级编程第五版?? 求助:业务逻辑层如何给表现层赋值? this 使用问题 救命阿。C#里如何给Binary类型的参数赋值呢? 怎样在.net dll程序集中输出函数供非托管C++等语言调用? 如何用C#正则删除所有网页源码中所有的的js代码啊 关于登录后的窗口问题 多语言,多风格的不规则窗体 AutoWindows 这个算快速排序算法吗? 怎样处理c#文件读取的并发访问(在线等!)
public bool checkService()
{
using (System.Net.Sockets.TcpClient tcpSocket = new System.Net.Sockets.TcpClient())
{
AsyncCallback ConnectCallback = null;
IAsyncResult async = tcpSocket.BeginConnect("www.baidu.com", 80, ConnectCallback, null);
DateTime startTime = DateTime.Now;
do
{
System.Threading.Thread.Sleep(100);
if (async.IsCompleted) break;
}
while (DateTime.Now.Subtract(startTime).TotalSeconds < 8);//8代表超时的时间,
if (async.IsCompleted)
{
tcpSocket.EndConnect(async);
tcpSocket.Close();
return true;
}
else
{
return false;
}
}
}
自己再加上try catch 就可以了
/// 测试指定IP是否能够连接
/// </summary>
/// <param name="ip"></param>
/// <returns></returns>
public static bool TestConnect(string ip)
{
bool result = false;
IPAddress ipAddress;
if (IPAddress.TryParse(ip, out ipAddress))
{
using (Ping ping = new Ping())
{
if (ping.Send(ipAddress, 1000).Status == IPStatus.Success)
{
result = true;
}
}
}
return result;
}
using System.Net.NetworkInformation;