`
totoxian
  • 浏览: 1032676 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论
文章列表
如今,但凡说精通网络的,第二个意思就是“精通TCP”,事实上,很多自称精通TCP的家伙们只是精通socket接口而已,对TCP行为精通的并不多,笔者也不算精通,但绝对是中等以上水平。如果你真的精通TCP行为,那么本文不读也罢 ...
事情是这样的,公司内部技术部门一般属于一个局域网段,我们当然也不例外。如果部门内部人员太多但是又不方便用VLAN隔离的话,一般使用switch或者hub来进行隔离,这种设备是不隔离广播域的,hub甚至都不隔离冲突域,既然这样,事故很容易就发生了。 我和部门其它3个人共同接在一个hub上,D-Link的设备,可能是低端的switch,不管它了!不知道怎么回事,我们这里的这个hub总是莫名奇妙的出现问题,一下子我们4人都无法正常联网。起初是以为设备坏了,后来网管给换了一台新的,心想这下子可好了,然而没过几天,同样的事故又发生了,又一次叫来网管,折腾了好一阵子,未果! 下意识感觉到 ...
1.背景 OpenVPN是一款高度可扩展的VPN软件,除了既有的将应用客户端安全接入服务器这一传统功能外,还可以让你无缝的接入一个远程的局域网,正如你身在该局域网一样,如果你不用OpenVPN,你将很难做到这一点。当然,你可以选择像IPSec这样的重量级VPN,但是你的生活从此将不再简单,你也可以使用拨号,连接到远程,但是你永远无法体验完全接入这种身临其境的感觉。 这就是OpenVPN的桥接功能,有了该功能,你将可以无限扩展局域网,你甚至可以将全世界连接在一个局域网内,每一个OpenVPN服务器都可以作为一个以太网桥存在,将局域网直接拉到很远的地方,距离再也不是问题。2.理论 Open ...
对于macbook,软件不重要!
1.原因 前面写过一篇有关贪吃蛇实现的小文《完全用链表实现的贪吃蛇》,其实现得很统一,几乎完全用链表实现了所有的元素,然而其效率不甚高。该实现虽然津津乐道于没有使用二维数组,然而却大量使用链表,实际上是将二维数组的双for循环换成了大量链表的遍历,虽然由于受到游戏面板长度宽度的限制,算法时间复杂度不会到O(N),但效率仍不敢恭维。 经由验证考研,网上朋友的指点,加之自己的思考,今天重新实现了一版,去除了上一版的“抽象但无用”的“统一于链表”的思想,更多的融入了OO的思想以及一些优化,通篇没有一次遍历整个链表。2.保留的链表以及更改的数据结构 虽然这一版声明不再使用链表,然而做事不能太极端 ...
有时候,你不得不抱怨,这个世界不是你自己的,因为当你在做一件事情的时候,总是被这样那样的其它所打断,你因此不可能拥有一段持续的时间来完成一件事情,因此持续时间是我们这个年代所有人最奢侈的诉求!每个人在做事的时候,非常不希望的事情是被打断,然则被打断是很经常的事情。 以往我总喜欢看会书,写点东西,由于刚有了小孩,每当周末的时候,这些事情完全被碎片化,我看的每一本书的每一页几乎都有了折角。因此只好选择一些本身就碎片化的书来读,比如随笔等,那些大部头的历史著作再也没法研读了,因为没有整块的时间。 在公司做事一样,公司毕竟不是学校,你的所做所为随时可能被新的分派下来的任务所打断,即使你的本职工作 ...
对于提供服务的程序,一般而言喜欢使用0.0.0.0这个地址,但是如果这个服务是UDP的,那么就有可能出现一些问题,比如如果某块网卡配置了多个IP地址,那么问题就可能重现。最近使用OpenVPN的时候就遇到了这样的问题。OpenVPN建议使用UDP协议,然而正是由于使用了UDP协议才出现了问题。以下几个要点帮助解决这样的问题,记之备忘: 1.udp服务没有bind到特定地址,而是0.0.0.0 2.没有bind地址的udp服务的返回包在路由后添加源地址 3.对于没有bind到特定地址的udp服务器的返回包,内核协议栈在路由后为其添加符合条件的网卡上的第一个最匹配的primary(非secon ...
1.起因 提起排序算法,大家都能随意讲出一大堆,比如冒泡,Shell,插入,快排等...然而有没有想过自己实现一个排序算法。我曾经在前年的时候实现了一个本应该由GPU来执行的移位排序算法,可惜没有搞到硬件和软件,那篇文章是:(http://blog.csdn.net/dog250/article/details/5303538)《移位排序算法--从赛跑想到的》,该文用递推的方式实现了移位排序,代码冗长,很不清晰,如今我自己都懒得剖析了。同样基于赛跑的思想,本文实现了一个超级简洁的移位排序算法,效率嘛,快得出奇,又慢得可以!2.思想 大家都知道赛跑,在跑道上每人一道,看谁先跑到终点谁就是冠军, ...
完全使用链表使得数据结构更加统一,并且将游戏面板上的所有元素看做链表元素本身就是合理的,在《完全用链表实现的贪吃蛇》一文中,其中有一个图示,其中大红色的线段连接的元素指示了需要拐弯的节点,类似一种路标,这也是一种链表...。 这种链表的设计很容易扩展到其它情形,诸如俄罗斯方块等小游戏的设计。实际上任何的基于方块的平面游戏(或者3D游戏),都可以使用基于链表的方案进行开发,这种方式使用链表将游戏中的元素聚合了起来,之后的游戏逻辑可以完全归结为针对链表的操作。 但是且慢,在那篇文章中,有位哥们提出一个更好的算法,以下是他的回复:蛇的移动可以采取更简单的处理方式,就是在移动过程中,首先判断当前 ...
1.链表设计 同事突然说想实现一个贪吃蛇,这使我想起了几年前实现的一个很糟糕的贪吃蛇程序,代码可以在《一个java写的贪吃蛇程序》里面找到。如今,突然想再实现一个贪吃蛇,不过这次绝对不能再那么糟糕了。 用链表实现并且只用链表实现贪吃蛇是一个不错的主意,于是初步的打算就是先规划出到底需要什么链表,图示如下: 游戏面板上的所有的元素都处于一条或者多条链表之中,这样整个游戏的操作就简单了,无非就是将元素在链表之间移动来移动去。另外一个要点就是将“位置”信息作为静态数据保存,将元素本身和元素的位置完全分离,只是将位置当成元素的一个属性信息。2.数据结构 到底用什么链表呢?Linux内核的“侵入 ...
前几日写了一篇《搞IT的到底怎么了》,引来了大批评论,看了一下我的博客访问情况,这篇文章的访问量瞬间快速提升,远远超过了其它的技术文章,甚至超过了之前受到过推荐的几篇技术文章,这个现象又一次引发了我的思考。我也许真的想的过多了,但有几点还是说说为好。 也许这个话题过于敏感,共鸣者和反对者几乎对半对半,这篇小论分了两个部分,为何就没有人看到第二部分,这篇小论分了很多方面,为何大家总是关注我怎么看加班,薪水? 扫大街的都能成为名人,如今富豪也会瞬间下马,行行出状元,业业都有危机,福祸相依,这是随便一个人都明白的道理。但是我还是觉得做IT的大多数还是很浮躁的,特别是研发,大多数还没有走出学校, ...
1.背景介绍 听着《梦中的额吉》,《天堂》...女儿在睡觉...外面细雨...中秋小长假,完成自己的OpenVPN patch 编码中充满了快乐!前提是你知道自己在做什么! OpenVPN不给力,虽然它给出了N多的Renegotiate选项,然则其实现却不尽人意。难道设计者以为我们众人就这么好忽悠吗? OpenVPN实现重新密钥协商是极其重量级的,需要做以下几件事:1.断开当前的SSL连接;2.重新开始一次SSL连接,建立一次SSL session;3.在重新生成的SSL加密信道上重新开始OpenVPN的密钥协商; 记住,不能单纯的理解这3个事件,是因为如果从底层看,底层的UDP连接( ...
老人来帮我照顾小孩,然而很多方面都无法沟通,心里很是憋气! 但是绝对不能生气,毕竟有代沟。每个人都会怀念自己年轻时的点点滴滴,那个年代没有胎教,没有早教,因此老年人就说这些都是无用的东西,而实际上那个年代他们真的是一穷二白!国外他们的同龄人事实上是比我们还先进的。 这个问题其实很好解决,没有必要多说什么,读史使人明智,试想如果能回到过去,拿一个IPhone送给秦始皇会发生什么,他老人家一定说你破坏天伦,扰乱纲纪,将你九族诛灭!这就是时代带来的悲哀! 清朝康乾盛世,面对欧洲的工业产品嗤之以鼻,然则百年之后,几千吨炮弹落下仍妄自尊大,便宜了谁? 要与时俱进,对于做不到者,没必要继续理论!人总 ...
十年前大概,每一个人都以IT为荣,可是十年后的今天,IT几乎成了一个略带侮辱性的词汇。老婆的QQ截图给我看: 看了以后,思考良久...高度数眼镜,呆滞,满脸痘痘,卷发(统计意义)...这是IT人; 挤车,一身臭汗,加班 ...
基本上PC操作系统都可以配置成路由器,想想看,所谓的路由器内部其实也运行着一个操作系统,且宽带路由器要比PC便宜的多,因此要明白宽带路由器所具有的软件功能,PC操作系统一般都具备,宽带路由器的优势有两点,在硬 ...
Global site tag (gtag.js) - Google Analytics