Update 130905: 注意这只是一个练习,日常使用推荐 Python 或 node.js 版
Shadowsocks-java,你懂的 软件的客户端的 java 版本。
Python, node.js, Go, C, C#, Ruby, Javascript 各种版本都有了,似乎没见到 Java 版..(Android 客户端用的是 C 版)
抱着 改改然后出安卓收费版 积攒一下经验值的想法,试着用 Java 重写了一遍这玩意..
获得成就:
只写了原始的 table 加密,归并排序那段是抄现成的。
后来才知道有 Arrays.sort(T[], Comparator) 无需自己写排序,但 byte[] 要转成 Byte[] (?) 我怕影响效率就没动了。
网络那段和 Python 版的一样,用了线程和 select。每个连接一个线程,转发数据用 Selector 。期间反复参考了这篇文章。
本想全改 select 的但是当时还不太明白 Selector 怎么用,下次也许能写出来了。
具体用法参照 README。传送门在文章开头。