内网穿透在项目中的应用

内网穿透在实际项目中有使用吗?,怎么使用?
还有就是在实际项目中,我们对于内网穿透是怎么定位的,如何很好的去运用,🤔求解

你想实现点对点传输文件,内网穿透是效率最高的方式
如果没有这种需求,或者对速率的要求不敏感,那服务器转发就好了呀

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7722381
  • 你也可以参考下这篇文章:在项目中使用定时任务,如何避免在当前任务因阻塞,还没有结束时,定时时间到了,另外一个定时任务又进入执行?
  • 除此之外, 这篇博客: 多态到底有什么用?中的 我们在使用集合对象时,固定喜欢使用接口类型变量去接收实现类对象,为啥要这样做,不这样行不行? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 上述问句的代码体现为:

    List<Integer> list = new ArrayList<Integer>();
    Map<String,String> map = new HashMap<String,String>();
    

    上述代码不好体现用处,我们再换一种写法:

        public List getList_1(){
            return new ArrayList();
        }
        public List getList_2(){
            return new ArrayList<Integer>();
        }
        public Map getMap_1(){
            return new HashMap();
        }
        public Map getMap_2(){
            return new HashMap<Integer,String>();
        }
    ======================================
        public ArrayList getList_3(){
            return new ArrayList<Integer>();
        }
        public HashMap getMap_3(){
            return new HashMap<Integer,String>();
        }
    

    这是六种获取集合的方法,假如按照最下面两种去写,那么获取的对象类型永远是固定的,并且使用时只能使用一种类型。那如果现在有个需求需要更换类型,从ArrayList变成Vector ,如果是最下面两种是不是除了方法,返回值要改,使用时获取此返回值的变量类型也需要改,如果此变量作为某方法的参数,那么方法参数类型是不是也要改?

    而如果是以接口类型返回的,则只需要在get方法中修改new出来的对象即可,即:

        public List getList_1(){
            return new Vector ();
        }
    

    剩下的都不需要改。这就是为什么我们使用集合时最好使用接口类型去接收,本质上还是使用多态思维让代码具有更好的扩展性与复用。

  • 您还可以看一下 刘伶华老师的软件测试经典面试题剖析课程中的 工作中有遇到什么困难,怎么解决的?小节, 巩固相关知识点

基本不用内网穿透,也就以前本地开发对接微信回调的时候,因为没有对外ip,需要用内网穿透,提供给微信一个可以访问的回调地址。

生产的项目中,公司都是有自己的对外ip或者域名的,所以用不到内网穿透。