Netty实现自定义流式解析器 Apr 26, 2019

tcp分包一般在pipeline的前部使用DelimiterBasedFrameDecoder, FixedLengthFrameDecoder, LengthFieldBasedFrameDecoder, or LineBasedFrameDecoder,分别适用于固定分隔符、固定长度帧、长度字段、换行符分割四种情况。但是,这四种不能涵盖tcp分包的全部情况,举个栗子:http协议的解析就不是上面四种中的一种。解析http协议或者其他自定义协议时,就需要用到ByteToMessageDecoder创建自己的“流式”解析器。netty的http解析器(HttpObectDecoder)就是继承ByteToMessageDecoder并override decode方法实现的。

...
go使用sync.pool实现复用[]byte——降低IO密集应用的GC频率 Apr 14, 2019

前一篇文章介绍了sogo这个socks5代理的实现,在原始的sogo实现中,有一个重大的问题是:没有复用内存,导致频繁GC,导致cpu占用很高。对于socket通信这种io密集的应用,复用[]byte还是很重要的,不然每次去make新的[]byte,这些[]byte迟早要被GC,这就导致了cpu占用高的问题。解决这个问题也很简单,就是引入内存池。

...
Sogo—使用http协议进行混淆/伪装的socks5代理 Apr 10, 2019

之前写了一个http代理,用起来也是十分地舒服,但是有几个点还是有些遗憾的:

  • http代理只能代理http协议,相比socks5代理不够通用。。
  • netty是个好框架,但是java占用内存是真的多。。

所以,我又写了一个socks5代理,起名叫sogo

sogo本身包含sogo(client)和sogo-server。如果把sogo和sogo-server看成一个整体,一个黑盒,这个整体就是一个socks5代理。sogo(client)与本地电脑交互;sogo-server与目标网站交互;sogo(client)和sogo-server之间的交互就是http协议包裹payload进行通信。

...
响应式iframe 16:9—hugo博客嵌入youtube视频 Apr 10, 2019

其实只是博客中想嵌入16:9的youtube视频,但youtube官方的嵌入代码是固定宽度1280,高度720,在手机上表现十分不好。因此有了这个偏前端的主题。

...
RabbitMQ的使用 Mar 14, 2019

rabbitmq java api使用demo

详情见github项目rabbitmqdemo

在centos7上安装RabbitMQ 3.7.13

RabbitMQ是使用Erlang编写的消息中间件,因此首先需要安装Erlang,而且RabbitMQ与Erlang版本有着对应关系。

...
玩转VPS与centos 7 Mar 4, 2019

多年以后,我又开始整vps了,学了三年,也知道怎么整linux了。个人使用的是搬瓦工 DC6 CN2 GIA 机房的vps。购买链接

...
针对热点问题的网络舆情爬取系统 Feb 28, 2019

“网络舆情爬取系统”是针对在一定的社会空间内,围绕中介性社会事件的发生、发展和变化,民众对社会管理者产生和持有的社会政治态度于网络上表达出来意愿集合而进行的计算机监测的系统统称。

...
安卓Vpn开发思路 Jan 30, 2019

经过2个月的开发,我的http代理可以说没有遗憾了,当然还有可以改进的地方,比如多用户认证啥的,但是没有必要啦。

为了在安卓上也能愉快地使用自己开发的代理,研究了一下安卓Vpnservice,在此记录一下当前的进度,并确定以后的开发思路。

...
快速安装HttpProxy Jan 21, 2019

HttpProxy是一个轻量、稳定、高性能的http代理,仅仅依赖netty和日志框架,实现http中间人代理和https隧道代理。google、youtube视频、满带宽下载、作为git的代理、作为shell的代理、作为docker的代理等场景都运行完美。

这一篇博客记录一下如何部署和使用这个代理

...
java-AES加密后再Base64混淆 Jan 4, 2019

这是上一篇java-AES128加密-代码与一些约定的后续。这一篇将会记录自己看到的在AES128之后所做的混淆。混淆原来为c语言实现,自己转成了java实现。感觉这一套比较好用,所以记下来变成自己的😁咳咳,最终发现这个混淆就是对Base64的一个实现,只是将64个可打印字符的顺序弄乱了。所以我有了自定义Base64来实现混淆的代码???黑人问号

...