分类:编程语言

Netty实现Shadowsocks客户端

Shadowsocks是什么 shadowsocks是基于socks5协议实现的代理方式,分为服务器和客户端,双端之间通过使用指定的加密方式(AES,BlowFish,Table等)进行数据传输,有效的突破了GFW。 整个流程可以看来自网上的一张流程图: 总体流程大致如上图所示,具体实现细节后面会介绍,今天要实现的是SS Local这个模块,数据传输都是基于socks5协议,所以有必要先了解一下socks5协议。 socks5协议 SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器…

阅读全文 »

HttpClient模拟登录流程

不管是抢购火车票还是电商网站上抢购商品,如果在节假日没有抢购工具是很难靠手动抢到的,所以市面上的抢购工具也是层出不穷,但流程都是差不多的,大体上分为2步: 今天主要介绍一下第一步:模拟用户登录,作为登录我也把它拆分成了这4步: 准备 1.chrome浏览器:因为需要借助chrome强大的开发者工具 2.开源中国的在线工具:密码的加密解密和一些格式化工具方便查看 3.eclipse:开发工具 模拟登录–以下仅供个人学习使用 1.分析请求地址 主要分析验证码的请求,登录的请求,以及为登录提供参数的请求,选定一个网站比如:开源中国,进入它的登录界面:https://www.oschina…

阅读全文 »

Reactor和Proactor模式

在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。 同步和异步 同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪,而异步是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO完成的通知。 阻塞和非阻塞 阻塞方式下读取或者写入函数将一直等待,而非阻塞方式下,读取或者写入函数会立即返回一个状态值。 I/O模型可以分为:同步阻塞,同步非阻塞,异步阻塞,异步非阻塞IO 1.同步阻塞 用户进程在发起一个…

阅读全文 »

netty自定义协议

java越来越多的用于服务器端的开发,少不了的要与客户端,服务器内部其他模块进行通信,netty帮我们实现了底层的通信,也实现了对一些常用协议的支持,比如http等,但有时候我们需要保证数据的及时性,安全性,比如游戏开发,及时性我们可能需要尽可能的控制协议包的大小,这时候我们可以自定义协议。 总体将一个协议分为:协议头和协议数据 协议头: 协议数据:就是我们需要的业务对象,后面写的编解码器就是帮助我们 业务对象->二进制数据 编码 二进制对象-> 业务对象 解码 header对象 消息对象: header解码器: header编码器: 抽象解码器: 抽象编码器: 抽象方法中提供的transfo…

阅读全文 »