网络正常只有自己访问网站异常一度让你怀疑,

2019-11-11 18:52 来源:未知

首先大家要知道在浏览器上浏览虚拟主机,必须使用Hosts文件或域名系统(DNS)实现主机名到IP地址的解析。在局域网中用Hosts文件或DNS都可以,在Internet上只能用DNS了。 

本篇文章主要介绍泛型的应用。

一、简介

  最近因为工作需要,使用了一些单机版Redis的界面化管理工具,使用过程中那惨痛的体验真的只有用过的人才能体会;为此本人和小伙伴准备动手一个Redis可视化工具,但是因为小伙伴最近工作比较忙,搞了一大半没有时间继续(会有后续,界面不敢说,使用体验上面肯定要比现有的好);本人对wpf不是很熟,再想到很久之前的web迅雷,就想动手实现一个web版的Redis的界面化管理工具;目前这个工具已初步成型,所以放出来分享一下。

1.当用户输入一个域名以百度为例(www.baidu.com)。

泛型是.NET Framework 2.0 版类库就已经提供的语法,主要用于提高代码的可重用性、类型安全性和效率。

二、基本使用步骤

  首先下载包,并解压打开,如下图:

  澳门金莎娱乐网站 1

澳门金莎娱乐网站,  接下来双击文件WebRedisManager.exe运行,如果无法运行的话,可能需要安装.net framework 4.5,成功打开界面如下:

  澳门金莎娱乐网站 2

  然后打开浏览器,地址栏按上面提示输入url,界面如下:

  澳门金莎娱乐网站 3

  这个时候就可以添加redis服务器了:

  澳门金莎娱乐网站 4

  添加成功后会自动显示在左侧:

  澳门金莎娱乐网站 5

  澳门金莎娱乐网站 6

  澳门金莎娱乐网站 7

  一些常规的增删改查的功能都有,目前还有一些查询功能、集群管理等没有完成,现在查询项默认都是50个,后续再慢慢加上吧。  

2.首先会到C:WindowsSystem32driversetc目录中用Hosts文件去查询相关的IP是否存在,如果存在就会访问该IP地址。

泛型的定义

三、开发简介

  上面主要是基于SAEA.Socket通信框架中的SAEA.RedisSocket、SAEA.WebApi两个组件来实现redis通信、webserver以及仿asp.net mvc的高效风格的后端程序,web端使用的是layui+ajax。项目源码结构:

  澳门金莎娱乐网站 8

 

3.不存在该域名解析,那么就会到公网DNS查找。

下面定义了一个普通类和一个泛型类,我们可以明确看到泛型类和普通类最大的区别就是多了一个<T>。

四、核心技术详细

  1.SAEA.RedisSocket:这个是基于SAEA.Socket实现的Redis编解码命令的客户端,目前封装了绝大部分的redis数据操作命令和全部的redis cluster命令,更多详细可参考。

  2.SAEA.WebApi:这个是基于SAEA.Socket实现的http编解码命令的服务端,目前已实现了get、post的处理,支持三种form的解码;并且已集成了mvc风格的编码框架,更多详细可参考。

  3.LayUI:这个是传说中面向后端开发人员的Web框架,排版上是仿Bootstrap的风格,集成了大量的插件,可以快速实现相关的web页面功能,更多详细可参考:。

当你访问域名出现异常,可能Hosts文件被修改了或者DNS被挟持了。

所以,这个<T>就标记了,这个类是泛型类。其中这个T,也可以写成A,B,C,D或其他字符。

五、完整封装及源代码分享

  这个项目按SAEA简洁高效的方式进行编码的,很多地方都使用的默认值,无论是查看代码还是后续对接都很轻松方便,下面是本项目的启动源码:

 1     class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             ConsoleHelper.Title = "WebRedisManagerService";
 6 
 7             MvcApplication mvcApplication = new MvcApplication(10240, 3000);
 8 
 9             mvcApplication.Start();
10 
11             ConsoleHelper.WriteLine("WebRedisManager服务已启动");
12 
13             ConsoleHelper.WriteLine("http://localhost:39654/html/index.html,按回车结束......");
14 
15             Process.Start("http://localhost:39654/html/index.html");
16 
17             ConsoleHelper.ReadLine();
18         }
19     }

  更多源码请访问 

 

转载请标明本文来源:
更多内容欢迎star作者的github:
如果发现本文有什么问题和任何建议,也随时欢迎交流~

解决方案:

public class Generic
{
    public String Name;
}

public class Generic<T>
{
    public T Name;
}

1.首先检查你的C:WindowsSystem32driversetc目录下的Hosts文件查看是否存在域名强制转向IP的情况,有的话把这个选项去掉。找不到文件设置隐藏文件可见。

泛型,顾名思义,就是泛指的类型。好比男人,女人,白人,黑人,可以泛称为【人】。

澳门金莎娱乐网站 9

但类型只能是一个类型。 那么泛型和类型之间是什么关系呢?

2.DNS被劫持或篡改了。你可以手动修改本地电脑的DNS,默认为空如下图,你可以在首选设置为:114.114.114.114,备用设置为:114.114.115.115;并查杀一下病毒。或者你的路由器被篡改了(设置的密码太弱),建议用修复工具修改。

其实很简单,泛型在定义的时候,是泛指类型;在使用的时候,就需要被指定,到底使用哪个类型。

澳门金莎娱乐网站 10

即,使用时,就不在是泛指类型,而是特定类型。

上面介绍了网络正常域名访问出问题的原因,那么下面就带大家使用C#搞一个Hosts修改工具(大家可以来研究,了解技术,但是不要用来恶搞他人):

好比,定义时,定义了一个人。但在使用时,必须明确指定,到底是黑人还是白人。

private static void updateHosts(string ip,string domain)
        {
            string path = @"C:WINDOWSsystem32driversetchosts";
            //通常情况下这个文件是只读的,所以写入之前要取消只读
            File.SetAttributes(path, File.GetAttributes(path) & (~FileAttributes.ReadOnly));//取消只读
            //1.创建文件流
            FileStream fs =ip==""? new FileStream(path, FileMode.Create): new FileStream(path, FileMode.Append);
            //2.创建写入器
            StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
            //3.开始写入
            bool result = false;//标识是否写入成功
            try
            {
                StringBuilder sb = new StringBuilder();
                sb.Append(ip);//IP地址
                sb.Append("   ");
                sb.Append(domain);//网址
                sw.WriteLine(sb.ToString());
                result = true;
            }
            catch (Exception ex)
            {
                result = false;
            }
            finally
            {
                //4.关闭写入器
                if (sw != null)
                {
                    sw.Close();
                }
                //5.关闭文件流
                if (fs != null)
                {
                    fs.Close();
                }
            }
            if (result == true)
            {
                MessageBox.Show("成功!");
                File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.ReadOnly);//设置只读
            }
            else
            {
                MessageBox.Show("失败!");
                return;
            }
        }

泛型的使用

澳门金莎娱乐网站 11

泛型类跟普通类的使用方式一样,都需要实例化对象,再由对象来调用内部的属性或方法。

在网址部分输入www.baidu.com,之后添加试试看,你还能访问百度吗?

下面代码实例化了泛型Generic,实例化时,还指定了该泛型Generic的指定类型为String。

没关系,之后你点清除,你又可以访问了!

所以要给泛型Generic的属性Name赋值,就需要赋值字符串类型的值。

源码地址:

public static void Excute()
{
    Generic<String> gs = new Generic<String>();
    gs.Name = "Kiba518";
}

 

下面代码定义了一个Int类型的泛型Generic。

public static void Excute()
{
    Generic<int> gs = new Generic<int>();
    gs.Name = 518;
}

泛型的默认值

泛型的默认值,如下面代码所示。需要使用default(T)来赋值。

TAG标签:
版权声明:本文由澳门金莎娱乐网站发布于澳门金莎唯一指定官网,转载请注明出处:网络正常只有自己访问网站异常一度让你怀疑,