当前位置:编程学习 > C#/ASP.NET >>

用C# 写一个判断网络连接是否正常的 程序



用C#写个判断网络是否正常连接


如果正常
返回一个正常提示


反之一个错误提示 --------------------编程问答-------------------- 有WindowsAPI函数,调用以后,返回网络是否连通。
包括使用的局域网还是拨号连接,都可以知道。 --------------------编程问答--------------------

[Flags]
        enum ConnectionState : int
        {
            INTERNET_CONNECTION_MODEM = 0x1, INTERNET_CONNECTION_LAN = 0x2, INTERNET_CONNECTION_PROXY = 0x4, INTERNET_RAS_INSTALLED = 0x10, INTERNET_CONNECTION_OFFLINE = 0x20, INTERNET_CONNECTION_CONFIGURED = 0x40
        }

        [DllImport("wininet.dll", CharSet = CharSet.Auto)]
            static extern bool InternetGetConnectedState(ref ConnectionState lpdwFlags, int dwReserved);

        public static bool IsConnectedToInternet()
        {
            ConnectionState Description = 0;
            bool conn = InternetGetConnectedState(ref Description, 0);
            return conn;
        }
--------------------编程问答-------------------- 直接用Socket连接一下指定的IP和端口就可以了。如果能连接上就是通的,不能连接上就没开端口。 --------------------编程问答-------------------- 可以通过Net ping一下远程服务器,可以ping通,网络正常。也可以用Win32API嘛,2L已经写了啦~[align=center]***********************************************************
                   欢迎使用CSDN 小秘书
                   每天顶贴即可得到10个积分O(∩_∩)O~
***********************************************************[/align] --------------------编程问答-------------------- 友情帮顶~~~~~~~~~~~~~~
可以考虑这个思路

try
{
...//路由到百度
return true;
}
catch
{return false;}
--------------------编程问答-------------------- string str="";
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
options.DontFragment = true;
string data = "";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 1200;
PingReply reply = pingSender.Send(IP, timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
str= "网络正常";
}
[DllImport("wininet.dll")]
        private extern static bool InternetGetConnectedState(out int connectionDescription, int reservedValue);

        public bool IsInternetConnected()
        {
            int i = 0;

            return InternetGetConnectedState(out i, 0);
        }
--------------------编程问答-------------------- 好东西,收藏。 --------------------编程问答-------------------- 好東西,如果可以自動連接網絡硬盤就好了. --------------------编程问答-------------------- 6楼是人才啊,谢谢啦,很有用 --------------------编程问答-------------------- --------------------编程问答-------------------- 参考 --------------------编程问答-------------------- 前面别忘了导入
using System.Runtime.InteropServices;

class wangluo
{
        //检测网络状态
        [DllImport("wininet.dll", EntryPoint = "InternetGetConnectedState")]
        public extern static bool InternetGetConnectedState(out int conState, int reder);
        public static bool jiance()
        {
            int Desc = 0;
            return InternetGetConnectedState(out Desc, 0);
        }
}

使用时调用:
if(wangluo.jiance())
{
     MessageBox.Show("网络连接正常");
}
else
{
     MessageBox.Show("网络连接不正常");
} --------------------编程问答--------------------
引用 6 楼  的回复:
string str="";
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
options.DontFragment = true;
string data = "";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout =……



IP是啥??? --------------------编程问答-------------------- 虽然没看懂,标记下、、后用。 --------------------编程问答--------------------
引用 2 楼  的回复:
C# code

[Flags]
        enum ConnectionState : int
        {
            INTERNET_CONNECTION_MODEM = 0x1, INTERNET_CONNECTION_LAN = 0x2, INTERNET_CONNECTION_PROXY = 0x4, INTERNET_RAS_INSTALLED = 0x……


+1
这个好用,我用的就是这个 --------------------编程问答-------------------- 如果只要知道电脑的网络是否连通的话,就值需要调用2L的方法检查一下就好了。如果需要知道本机是否可以连接到特定的服务器的,可以使用ping的方式。如果需要知道本机连接到的服务器是否能请求服务器某些API的时候,就需要请求特定的服务器API --------------------编程问答-------------------- 记得当年我是ping滴,嘿嘿 --------------------编程问答-------------------- --------------------编程问答-------------------- http://hi.baidu.com/liujw1220/blog/item/99a50e09ba27922e6a60fb6e.html --------------------编程问答-------------------- 好东西啊 --------------------编程问答-------------------- 常用知识,标记备用 --------------------编程问答-------------------- Mark 备用
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,