首页
学习
活动
专区
圈层
工具
发布

为什么我在公司里访问不了家里的电脑?

上篇文章「为什么我们家里的IP都是192.168开头的?」提到,因为IPv4地址有限,最大42亿个。...SNAT 如果接收端处理完数据了,需要发一个响应给你的电脑,那就需要将发送端IP地址填上自己的30.30.30.30,将接收端地址填为你的公网IP地址20.20.20.20,发往NAT路由器。...那这么说只有用到端口的网络协议才能被NAT识别出来并转发? 但这怎么解释ping命令?ping基于ICMP协议,而ICMP协议报文里并不带端口信息。我依然可以正常的ping通公网机器并收到回包。...ping报头 事实上针对ICMP协议,NAT路由器做了特殊处理。ping报文头里有个Identifier的信息,它其实指的是放出ping命令的进程id。...像上面提到的服务器x,你也不需要自己去搭,已经有很多现成的方案,花钱就完事了,比如花某壳。 内网穿透 到这里,我们就可以回答文章标题的问题。 为什么我在公司里访问不了家里的电脑?

3.7K10

我不允许你只会 if err == nil ,请收下这份优雅处理错误的指南

Go 的错误异常处理,一直都是一个非常好玩的话题。...如果你习惯了 try catch 这样的语法后,会觉得处理错误真简单,然后你再来接触 Go 的错误异常,你会发现他好复杂啊,怎么到处都是 error,到处都需要处理 error。...所以我们尽量避免去比较 error.Error() 输出的值,因为他正常情况下不是给我们人看的,而是给程序看的,同时方便我们调试。 所以,Go 里面的错误其实我们可以进行一系列的编程。...总结 Go 的错误处理和其他语言不太一样,如果遵守错误处理的规范,不对错误进行隐藏,写出来的代码一般都是比较健壮的。...于是就难免会出现一个包里面,特别多的错误处理代码,这就是时间和空间的博弈,就看 Go 语言的领路人如何取舍了。 其次每个人对错误的理解和处理思路方式都不太一样。

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    为什么我写的程序有bug(一):逻辑篇

    我本来是希望 when 的,在写第一个when的时候头脑还是很清晰的。但是呢,当写第二个的时候就用四肢写代码了,习惯性的打了个return。...} 这里本来的意思针对请求的类型不同进行处理,但是我们在进行对比的时候,用Request的类型和Response的类型进行比较,显然存在问题。...a>=10时,在成功或者失败的回调要处理不一样的逻辑。...accountService == null){ waitBind();//等待绑定成功、然后跨进程获取数据 } Info info = pushService.aidlGetInfo(); } 发现这个问题的现象是程序刚启动时随机出现几次...但是,我们在清除accountID时只清除了数据库,没有清除缓存,再次登录的时候用的缓存的值。这样就会导致程序陷入了死循环。所以在进行存储操作时,需要考虑好同步的问题。

    1.5K20

    『设计模式』反射,反射程序员的快乐!为什么我老是加班?为什么我工资不如他多?原来是我不懂反射!

    看完不会,请评论,我亲自给你解释,嘻嘻! ? 什么是动态语言? 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。...,正在运行中的类的访问修饰符,注解等等。...喜欢问问题的小朋友要来了? 为什么没有getDeclaredConstructor方法和getDeclaredConstructors方法? 为什么?为什么? 有啊!!...关于为什么要使用private访问权限的构造器,使用这个构造器不就不能外部访问了嘛,不也就无法进行实例化对象了吗?...总结 这时候又会有小朋友问: 为什么要这么麻烦,我直接调用不就好了?

    1.5K20

    为什么我的数据库应用程序这么慢?

    应用问题:处理时间慢 每当客户端向SQL Server发送请求时,要检索所需的数据集,完成请求所需的总处理时间都包括: 应用程序处理时间:应用程序在发送下一个请求之前处理上一个响应中的数据需要多长时间...专注于一个小型可重复的工作流将让您隔离问题。 接下来的问题当然是为什么要花10秒钟?缩小问题的第一个也是最简单的方法是将应用程序尽可能靠近SQL Server,在同一台机器上或在同一个LAN上运行。...调查申请处理时间 您将在两个地方之间看到时间:发送应用程序的响应和获取下一个请求(应用程序处理时间)之间或在发出SQL Server请求和获取响应(SQL处理时间)之间的时间。...或者,如果您对扩展事件和XQuery有信心,您应该可以通过该路径获取类似的数据。 首先通过捕获工作流的Profiler跟踪,只需使用“标准(默认)”跟踪模板。...当数据移动到不同的位置(如云端)时,会发生什么?或者不同大陆的客户试图访问?或者您需要构建地理上多样化的灾难恢复环境?

    3.6K30

    996的程序员们,为什么我不建议你买保险?

    996的程序员们工作强度高、压力大,一旦患病,对家庭生活质量会产生极大的威胁。 可以说,一人患上重疾,就等于一家人被判了死刑。 如何避免呢?很多人想到买保险,但我劝你不要着急买!...为此,我邀请了我的好朋友资深保险规划师杨震,请他从客观中立的角度给大家开一次讲座,全面解读保险里的陷阱,避免大家日后被坑。讲座开始前,先上一波干货,给大家分析一下日常买保险常见的各种不正确姿势。...而那些花高价买的万能险、返还险等,认为包括了“教育金”和“养老金”,不但有保障,还可以理财,很划算。但其实,这种保险的价格比纯保障型的贵好几倍,同样的价格,保额也严重不足。...但很多人不知道,国家早已对各大保险公司疾病进行了统一,前25种重疾病种各家保险公司定义都是相同的。 所以,我们看重的数量应该是,重疾条款中附加的轻症和中症的项目。...要不然,我们花再多钱也是白搭,更得不到风险防御的效果。 买保险的4个正确打开方式 买保险的各种不正确姿势,每天都在我们身边上演,这么深的水,怎么才能避免被坑钱呢?

    3.9K20

    运维告诉我CPU飙升300%,为什么我的程序上线就奔溃了 | Java Debug 笔记

    代码层面从功能上看没有任何问题但是投入使用后却让我头大问题描述====系统上点击数据录入功能在全局监控中会受到相关消息的通知。...然后客户注册时候将这些接口和客户端绑定在一起当我们监听程序坚挺到数据变动就会对绑定到相关接口的客户端发送最新数据业务定位业务上很好定位,问题就是出现在我们的监听程序中。...在这种的并发场景下应该是不会出问题的。现在出了问题肯定我们的程序逻辑有缺陷上面是我们的发送消息的代码。代码也很简单。先获取所有符合发送条件的客户端 。...我们1W个用户同事在线的可能有5000+ 。 那么我们需要5000次以上的反射着肯定是吃不消的。这也是为什么本文开头说功能正常不代表业务正常。解决方案====这就是量变引起质变。...而且我们系统对数据实时性也是可以接受一定时间延迟的。我在这里又加上缓存这样就解决了我们循环的问题经过测试本次改动在CPU上大概优化了100倍。

    53410

    为什么程序员总是发现不了自己的Bug? 程序员: 我不认识他啊

    因此,如何处理修复 Bug 的过程也值得我们细细琢磨。 我想分享一些程序员修复他们的源代码时所经历的想法。我相信很多开发人员和软件工程师经历过这些艰辛,然后在事后一笑而过。以下你经历过哪些? 1....这种汹涌澎拜的斗争是我经常要面对的,而且显然会困扰许多软件开发人员。 2.“为什么这个脚本需要这么多库?”...但是这一切都取决于你的需要,如果你觉得在程序中间休息更令人懊恼的话,那就不要中断。 10.“我应该把这个项目束之高阁,以后再来处理它。” 休息的另一个选择是离开你的项目,而不仅仅是远离你的电脑。...“哦,天哪,我以前为什么不写点注释呢?” 当涉及到比较基础的前端 HTML / CSS / JS 时,我们没有必要写注释。...当我一筹莫展时,我往往会选择从头开始,因为这样才有可能找到完成项目的正确道路。 为什么程序员发现不了自己的 Bug? ?

    1.5K10

    【前端 · 面试 】JavaScript 之你不一定会的基础题(二)

    在捕获阶段: 浏览器检查元素的最外层祖先,是否在捕获阶段中注册了一个onclick事件处理程序,如果是,则运行它。...在冒泡阶段,恰恰相反: 浏览器检查实际点击的元素是否在冒泡阶段中注册了一个onclick事件处理程序,如果是,则运行它 然后它移动到下一个直接的祖先元素,并做同样的事情,然后是下一个,等等,直到它到达<...这两个阶段如下图所示: [bubbling-capturing] 在现代浏览器中,默认情况下,所有事件处理程序都在冒泡阶段进行注册,这也是为什么只有一个阻止冒泡方法的方法 event.stopPropagation...关于 this 和 event.target ,总结如下: 在整个事件流程中,event.target 永远都指向真正触发了事件流程的元素 ,即处于事件触阶段的元素。...~ 学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂! 大家好,我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教! 你来,怀揣期望,我有墨香相迎!

    79210

    为什么我的个人博客访问速度慢到让人想砸电脑?EdgeOne免费套餐拯救记实战分享!

    前言  说起来真是泪目,作为一个码了十来年代码的老程序员,我的个人博客访问速度慢得让我自己都不好意思分享给朋友。...直到前段时间偶然接触到腾讯云EdgeOne的免费套餐,我才意识到原来CDN加速对于个人开发者来说已经不再是奢侈品了。经过一番折腾,我的小破站终于"重获新生",访问速度提升了整整3倍!...,体验飞起3200+全球节点:说实话,这个数字比我想象的要夸张中国超过2300个节点:国内访问速度有保障了️ 安全防护,省心省力平台级DDoS防护:虽然我的小站估计没人会攻击,但有总比没有强基础WAF防护...填写需添加的加速域名以及对应的源站信息,配置完成后单击下一步。第二步:DNS记录迁移  这一步我踩了个小坑。一开始我以为直接改NS就行了,结果网站直接访问不了!...⬆️ 全球访问测试  我用了几个在线测速工具测试了全球不同地区的访问速度:# 使用Python进行简单的响应时间测试import requestsimport timedef test_response_time

    71021

    解析Javascript事件冒泡机制

    事件的阐述不是本文的重点,尚未了解的朋友,可以访问W3school教程 进行了解,这将有助于更好地理解以下的内容 。 2.冒泡机制 什么是冒泡呢?         ...这显然不是我们想要的! 我们希望的是点谁显示谁的信息而已。为什么会出现上述的情况呢?...方法二:事件包含最初触发事件的节点引用 和 当前处理事件节点的引用,那如果节点只处理自己触发的事件即可,不是自己产生的事件不处理。...比如span 点击事件,产生一个event 事件对象,event.target 指向了span元素,span处理此事件时,event.currentTarget 指向的也是span元素,这时判断两者相等...比如,如果span 元素的处理函数没有执行冒泡终止,则事件会传到div2 上,这样会造成div2 的提示信息; 方法二缺点:方法二为每一个元素都增加了事件监听处理函数,事件的处理逻辑都很相似,即都有判断

    1K40

    如何点击穿透Electron不规则窗体的透明区域

    ,我在“Electron团队为什么要干掉remote模块“有详细描述。...上面的代码中,设置窗口对象监听mousemove事件,当鼠标移入窗口圆形内容区的时候,不允许鼠标事件穿透。当鼠标移入透明区时,允许鼠标事件穿透。...当鼠标在圆形区域外移动时,窗口对象的mousemove事件触发,event.target为document.documentElement对象(这个事件并不是在html或body元素上触发的,而是在窗口对象上触发的...至此,上文代码中的判断成立,当鼠标在前文所述四个区域移动时,鼠标事件允许穿透。鼠标在圆形区域移动时,鼠标事件不允许穿透。...至此,上文所述判断成立,运行程序,鼠标在正方形四角区域内点击,鼠标事件具备了穿透效果。

    3.9K10

    「非推广」为什么我说本是设计师专属的『数位板』,也是程序猿+科研狗的开会神器?

    简介:我本来是有一个绘画梦想的,毕竟,我这个年代的少年,谁不是看着二次元长大的呢。当我入手一款数位板后(可以让你用笔代替鼠标的东西,适于在电脑上绘画), 我发现其作用远不止于绘画。...我利用不同的搜索引擎进行检索,都没有找到原作者,如果知道原作者,欢迎联系我,我将标明出处 上面这个小漫画有趣地阐述了『人生三大错觉』: •手机来消息了?•Ta是不是喜欢我?•我能反杀的,冲!...那么, 数位板看起来与我们这样的非设计师八竿子打不着,为什么我要推荐大家都花几百块钱买一个呢? 如果没有绘画需求,确实不会想到买数位板,甚至不会知道有这么个东西。...2020.10.28 我给朋友讲论文的板书笔记 如上,跟朋友线上讨论问题时,我一般会创建一个白花花的 PowerPoint ,然后: •涉及到想具体说明的东西,就用 Ctrl + Alt + A 截图,...哈哈哈,觉得不差几百元的话,推荐你去购物平台搜索数位板,并且关注公众号 Piper蛋窝 ,回复 微信 加我微信,与我交流,加入(业余)设计师/程序员大本营吼吼吼~

    91120

    别装了,身边的人都在给 AI “擦屁股”:我来说说为什么 2025 年的程序员反而更累了?

    我是老码小张。今天这篇,不聊新框架,也不吹什么最新大模型。就聊点真心话,聊聊这两年,程序员到底在经历什么。...铁打的程序员,流水的“银弹”先说一句得罪人的:“程序员要被替代”这个故事,我几年都快耳朵听起茧了,在阿里的 seconf 上面,钱唐还是谁,还专门统计了下,前端已死 7 次,后端、设计师就不知道了,反正死的次数最多的是前端...一个大佬也是坦言:当年我刚入行的时候,大家说,汇编都要淘汰了,高级语言一出来,程序员就没什么技术含量了;后来 Visual Basic 出来,拖拖控件、点点属性就能跑,被吹成“谁都能做软件”;Office...留给真正程序员的,是一张更难的卷子如果你问我,这两年对程序员最大的冲击是什么。不是“要不要被替代”,而是——这份工作真正的门槛,被暴露得更赤裸了。...为什么?因为很多公司这两年在 AI 幻觉里耽误了好几轮“人”的培养:该招的没招,该带的没带。

    66322

    JavaScript事件详解

    冒泡(Bubbling)阶段 事件将沿着DOM树向上转送,再次逐个访问目标元素的祖先节点到document节点。该过程中的每一步。浏览器都将检测那些不是捕捉事件监听器的事件监听器,并执行它们。...事件委托 利用触发冒泡事件的原理,只指定一个事件处理程序,就可以管理某一类型的所有事件。...一般就是一次性将父元素绑定事件,通过判断event.target 来执行相应的方法,后续添加子元素的时候不用再次绑定。...在JavaScript中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能,因为需要不断的与dom节点进行交互,访问dom的次数越多,引起浏览器重绘与重排的次数也就越多,就会延长整个页面的交互就绪时间...,这就是为什么性能优化的主要思想之一就是减少DOM操作的原因;如果要用事件委托,就会将所有的操作放到js程序里面,与dom的操作就只需要交互一次,这样就能大大的减少与dom的交互次数,提高性能; 每个函数都是一个对象

    99310

    一篇文章搞懂前端事件监听

    ,进行一些事件的处理; Web当中,事件在浏览器窗口中被触发,并且通过绑定到某些元素上或者浏览器窗口本身,那么我们就可以 给这些元素或者window窗口来绑定事件的处理程序,来对事件进行监听。...事实上对于事件有一个概念叫做事件流,为什么会产生事件流呢?...事实上,还有另外一种监听事件流的方式就是从外层到内层(body -> span),这种称之为事件捕获(Event Capture); 为什么会产生两种不同的处理流呢?...:事件的类型; target:当前事件发生的元素; currentTarget:当前处理事件的元素; offsetX、offsetY:点击元素的位置; 常见的方法: preventDefault:...:", event.type) console.log("事件的元素:", event.target, event.currentTarget) console.log("事件发生的位置:",

    1.3K10

    为什么我的子线程更新了 UI 没报错?借此,纠正一些Android 程序员的一个知识误区

    半小时前,我的 XRecyclerView 群里面,一位群友私聊我,问题是: 为什么我的子线程更新了 UI 没报错? 我叫他发下代码我看,如下,十分简单的代码。...他用了 OkHttp 的异步 enqueue 的请求,并在成功后更新了 textView 的 text。 明确一点: okhttp 的同步异步的回调都是在子线程里面的。...那么这样来说,按照我们被一直灌输的原理: 子线程不能刷新UI,上面这段代码妥妥地爆错啊。 而我要说的是: 上面的代码不一定爆错,它还会稳稳的顺利执行。 你十分怀疑了? 你可以尝试下。...原因 在看到他发给我的代码,onCreate 里面的部分,一切已经明了,这也是我之前面试几年经验的人设过的坑。下面我直接讲原因,源码分析那些你们自己去看吧,你应该去看。...e.printStackTrace(); } title.setText("我执行不了

    1.7K70

    js事件防止冒泡

    大家好,又见面了,我是全栈君。 1. 事件目标 如今。事件处理程序中的变量event保存着事件对象。而event.target属性保存着发生事件的目标元素。...与.target类似,这种方法也是一种纯JavaScript特性,但在跨浏览器的环境中则无法安全地使用 。 只是,仅仅要我们通过jQuery来注冊全部的事件处理程序。就能够放心地使用这种方法。 以下。...默认操作 假设我们把单击事件处理程序注冊到一个锚元素,而不是一个外层的上,那么就要面对另外一个问题:当用户单击链接时。浏览器会载入一个新页面。...这样的行为与我们讨论的事件处理程序不是同一个概念,它是单击锚元素的默认操作。类似地,当用户在编辑完表单后按下回车键时。会触发表单的submit事件,在此事件发生后,表单提交才会真正发生。...事件传播和默认操作是相互独立的两套机制,在二者不论什么一方发生时,都能够终止还有一方。假设想要同一时候停止事件传播和默认操作,能够在事件处理程序中返回false。

    3.4K40
    领券