NEXT:努力积累100篇
访问量
163.7K
文章数
71
运行天
405
一、通信协议的设计说到通信,我们肯定会想到OSI七层模型,想到TCP/IP,想到Socket。但是如果我们需要直接和物理设备通信,尤其是对实时性、安全性要求较高的时候,采用在数据链路层发送自己设计的裸包的方法是最好不过的了:第一,安全性可控。自己设计的通信协议当然可以控制想要加密什么东西了。第二,实时性。不需要经过高层的封包解包,直接向MAC地址发送裸包。第三,也是最重要的,可裁剪。我们可以裁剪掉不需要的功能,增加需要的功能,这对于有内存闪存大小限制的嵌入式设备是很有意义的。那么,该如何去设计这个通信协议呢?最简单的协议可以考虑这些内容:序号协议字段名详细描述 1协议标识 标记这个包是用的你的协议 2协议版本 当协议有多个版本后,可以协调兼容问题&nb
前言网站有太多的功能想加了,然而并不希望在线调试代码,所以想到了用git。当然不只是git而已,还需要能够预览修改后的效果。所以最开始准备在本地windows8搭建一个NMP环境,其实搭建过程还好,然而在windows下安装nginx时出了问题,我使用了一个nginx插件subs_filter,在linux下可以很方便地重新编译把插件装上,但是在windows下就直接给的编译好的代码,感觉又得搭一个windows编译环境,好心累……所以放弃这个方案。第二个方案是本地采用vmware虚拟机,然后通过桥接接到主机,每次打开vmware作为本地环境来预览效果。我的计划总是那么美,实现起来总是那么困难,光是安装debian8.2就装了好久,大概做了这些:(1)vmware10不支持debian8以上
前言最近在做一个简单的项目,需要调用大量的无状态函数,首先就想到了之前用过的单例模式设计API类。这是在去年实习的时候发现他们后台用PHP编写的,包括连接数据库之类的操作都用的是同一个类来操作,非常方便,仔细看看源码发现这个类就是一个单例模式设计的。不过最近翻看了一些资料,发现JAVA的单例模式并不简单:PHP并没有线程安全的问题,一个请求在结束后生命周期就结束了,PHP设计单例模式仅仅是为了如果在同一个页面多次处理,可以不用重复创建对象而已;JAVA则不同,需要考虑两个线程同时访问的情况。简单介绍下PHP的单例模式怎么设计,非常简单,保证三点就可以:(1)建立一个私有的静态成员变量,保存实例;(2)构造函数和克隆函数都不允许使用;(3)做一个public的获取实例的函数,自行实例化或者返回
前言在之前《用Python爬取双色球开奖信息(升级版)》中已经介绍了简单的urllib+re正则的方式来提取每天的双色球数据,当然这是有用的,虽然数据量少,但是可以用来做一些比如“买了股票自动比对中奖情况然后推送”这一类程序或网页。但这种爬取方式仍然存在问题:容易被网站的反爬虫或者反作弊发现。也就是说,你爬取这些接口,那边的服务器系统会有日志的,并且有自动处理程序,甚至会有机器学习的程序。尽管这种数据没有什么敏感性,根本不会来封你的IP,不过也要养成良好的爬虫习惯,至少——在爬取的时候加个header,不要被一句简单的awk命令就给筛选出来安排得明明白白了(我在实习的时候经常一句awk就筛出那些刷金币刷花接口的小同学,尽管大佬们提供了svm机器学习模型来自动处理)。注意到有的网站提供了大量的
前言被布置了几个写linux内核设备驱动的作业,周末断断续续写了两天,也付出了不少精力。当我想在Makefile里面的clean多写点东西,把该删除的都删除了,想删除一个.mod.c的文件,一不小心直接写了个.c把c文件也一起删了……:clean:$(shellrm-f*.bak*o*.ko*.c*.order*.symvers)呆呆地望着剩下的Makefile,欲哭无泪……于是赶紧查了查有没有补救方案,果然查到了extundelete这款软件可以恢复,尝试了一下,成功了。一、使用条件extundelete只适用于ext3、ext4文件系统,vmware虚拟机的硬盘大多都挂在/dev/sda1上,ubuntu常用的都是ext4。你可以通过以下命令查看操作系统和linux版本:uname-aL
快速介绍【抢购地址】点我【推荐抢购机型及其用途】云服务器BCC/39元/实验娱乐,云服务器BCC/139元/爬虫、接口【活动时间】2018年6月19日-2018年7月26日【秒杀时间】每天上午9点【供应数量】每款产品只供应50台【限制条件】之前没有买过百度云服务器详细介绍百度云终于开始发力了,推出了4个主要促销机型:机型 CPU 内存 带宽 硬盘 其他价格 BCC 1核1G1Mbps40G  -39/半年 BCC 2核4G2Mbps 40G 在苏州139/半年 BCH/BC01 -128M1Mbps2G1000M数据库9.9/一年 B
前言因为一道题目让我不断地深追下去,挖出了我多年的噩梦——数据类型的范围与长度。每次都想得头痛,因为平台不同、编译器不同、编程语言不同等等因素,又没去做实验,网上那么多说法该相信谁都不知道……那不如趁现在就来详细地解决掉它吧。一、原码、反码和补码基础知识相信在大学的《数字逻辑》课上都学过这个内容了,原码、反码和补码都是基于二进制而言的:【原码】第1位表示符号位,其余位是这个数的绝对值。这是最简单能够马上想到的表示方式了。【反码】正数的反码是其本身;负数的反码:在原码的基础上,符号位不变,其余位取反。【补码】正数的补码是其本身;负数的补码:在原码的基础上,符号位不变,其余位取反,最后+1。举个例子,假设整数在机器上是用8位二进制数表示的(8位就和我们经常说的32位、64位是一样的含义):整数&
前言博客网站过渡到2.0版本,暂时不会有太大的变化了,开始囤文章积累知识,这里记录一下发生的变化。改动增加自适应标题栏的自适应:文章标题的自适应:文章推荐的自适应:其他的不再列图:嗖嗖搜/友链增加两个文章的缩略图为了让文章吸引人,增加了一个260×190像素的缩略图,以及文章中1190×300像素的标题背景图。如果暂时没有图,会默认显示两幅星空图。增加评论系统表情以OwO插件为基础进行的改进增加文章的【持续更新】属性修改了【一枚萌新】的内容增加了后台的浏览器缓存功能这样失误按到鼠标侧键浏览器前后翻页造成写一半的文章丢失的情况就不会再出现啦~而且同时不会增加服务器负担,因为缓存是以Cookie的形式保存在浏览器端的。增加了草稿箱功能这样就不会再有(正在写)这种写一半的文章发布了。服务器迁移到广
上一页 12345... 8下一页