c#关于判断网络连接正常与否的总结

来源:互联网 发布:参加网络研修所思所想 编辑:程序博客网 时间:2024/04/30 04:34

本人最近做c#winform的项目,遇到了判断网络是否正常连接的问题。后来查出了以下几种方法,供大家学习参考。

1.方法一

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Threading;
namespace WindowsFormsApplication1
{
    public partial class Demo : Form
    {
        public Demo()
        {
            InitializeComponent();
        }
        //判断
        private void btpanduan_Click(object sender, EventArgs e)
        {
            //210.192.120.228  163网易
            string ip = this.txtip.Text.ToString();
            int port = Convert .ToInt32( this.txtport.Text.ToString());
            bool a = panduan(ip, port );//135为本机服务端口号
            if (a == true)
            {
                MessageBox.Show("该网络连接正常 !");
            }
            else
            {

                MessageBox.Show("该网络连接不畅通 !");
            }
        }
       

      // 异步调用

 

        //判断的方法
        public bool panduan(string ip, int port)
        {
            try
            {
                TcpClient client = new TcpClient(ip, port);
                if (client.Connected)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }

        }
    }
}
 

2.利用 c# ping类

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
namespace WindowsFormsApplication1
{
    public partial class Demo3 : Form
    {
        public Demo3()
        {
            InitializeComponent();
        }

        System.Net.NetworkInformation.Ping ping = new System.Net.NetworkInformation.Ping();
        System.Net.NetworkInformation.PingReply res;

        //检查网络连接
        private void btcheck_Click(object sender, EventArgs e)
        {


            string url = this.txturl.Text.ToString();
            bool a = check(url);

            if (a == true)
            {

                MessageBox.Show("连接成功!", "提示信息");


            }
            else
            {

                MessageBox.Show("连接失败!", "提示信息");
            }
        }


        public bool check(string url)
        {


            try
            {
                res = ping.Send(url);

                if (res.Status == System.Net.NetworkInformation.IPStatus.Success)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch {


                return false;
            }
        }
    }
}

 

 


 

 

原创粉丝点击