From 4fc016156f52e5c76c3db463701c20023b0f72ae Mon Sep 17 00:00:00 2001 From: Lao Zhikun Date: Sat, 22 Aug 2015 22:37:52 +0800 Subject: [PATCH 1/6] improve README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 92dfa94..1512a2d 100644 --- a/README.md +++ b/README.md @@ -231,7 +231,7 @@ self._last_visits = collections.deque() ###### 3、python内置的logging也可作大规模使用 ###### 4、把我理解层面阔伸到协议层面,学到怎么构建一个协议(协议的设计还要学习) ###### 5、网络编程和信息安全息息相关 -###### 6、这个网络编程的学习路线挺不错的:爬虫-\>翻墙软件。不知道下一步怎么加深 +###### 6、这个网络编程的学习路线挺不错的:爬虫-\>XX软件。不知道下一步怎么加深 一些问题: ###### 1、如何做到线程安全? From 53c9fbc1bf0aed781735e2af1a58783b2d5e1522 Mon Sep 17 00:00:00 2001 From: Lao Zhikun Date: Sun, 23 Aug 2015 13:59:21 +0800 Subject: [PATCH 2/6] clarify README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 1512a2d..8ac0f7e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # shadowsocks源码分析 +*此份代码仅用作学术交流用途,其他行为带来的后果本人概不负责* + +*This copy of code is for study of python only* + ## 项目结构: ###### 1、asyndns.py 用于处理dns请求 ###### 2、common.py From 28200eefb7747a09bdfd86e5638175c8f2ab18ca Mon Sep 17 00:00:00 2001 From: Jerry Ling Date: Mon, 24 Aug 2015 01:29:12 +0800 Subject: [PATCH 3/6] fix typo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix typo + 增加解释 --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 8ac0f7e..6a717f2 100644 --- a/README.md +++ b/README.md @@ -5,17 +5,17 @@ *This copy of code is for study of python only* ## 项目结构: -###### 1、asyndns.py 用于处理dns请求 +###### 1、asyncdns.py 用于处理dns请求 ###### 2、common.py -###### 3、daemon.py,提供daemon运行机制 -###### 4、encrypt,处理shadowsocks协议的加密解密 -###### 5、eventloop,事件循环,使用select、poll、epoll、kequeue实现IO复用,作者讲三种底层实现包装成一个类Eventloop -###### 6、local,在本地运行的程序 -###### 7、lru_cache.py,作者实现的一个基于LRU的缓存 -###### 8、server.py,在远程运行的程序 -###### 9、tcprelay,实现tcp的转达,用在远程端中使远程和dest连接 -###### 10、udprelay,实现udp的转达,用于local端处理local和客户端的socks5协议通信,用于local端和远程端shadowsocks协议的通信;用于远程端与local端shadowsocks协议的通信,用于远程端和dest端的通信 -###### 11、utils.py +###### 3、daemon.py,提供daemon(守护进程)运行机制 +###### 4、encrypt.py,处理Shadowsocks协议的加密解密 +###### 5、eventloop.py,事件循环,使用select、poll、epoll、kequeue实现IO复用,作者将三种底层实现包装成一个类Eventloop +###### 6、local.py讲,在本地(客户端)运行的程序 +###### 7、lru_cache.py,作者实现的一个基于LRU的Key-Value缓存 +###### 8、server.py,在远程服务端运行的程序 +###### 9、tcprelay.py,实现tcp的转达,用在远程端中使远程和dest连接 +###### 10、udprelay.py,实现udp的转达,用于local端处理local和 客户器端的SOCKS5协议通信,用于local端和远程端Shadowsocks协议的通信;用于远程端与local端Shadowsocks协议的通信,用于远程端和dest端(destination)的通信 +###### 11、utils.py 工具函数 > 代码质量相当的高,感觉都能达到重用的级别。而且由于作者设计的思想是,一个配置文件,同一段程序,在本地和远程通用,所以其中的代码,常常能够达到一个函数,在本地和服务器有不同的功能这样的效果。 From fa1e0e888a0dcead2976e838a8251ae5d9bbbeb3 Mon Sep 17 00:00:00 2001 From: The Gitter Badger Date: Mon, 24 Aug 2015 06:29:59 +0000 Subject: [PATCH 4/6] Added Gitter badge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6a717f2..ff8d635 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # shadowsocks源码分析 +[![Join the chat at https://gitter.im/lao605/shadowsocks_analysis](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/lao605/shadowsocks_analysis?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + *此份代码仅用作学术交流用途,其他行为带来的后果本人概不负责* *This copy of code is for study of python only* From b84368bb6a745ba9cd66432a40a4bc0b67268c65 Mon Sep 17 00:00:00 2001 From: Lao Zhikun Date: Mon, 24 Aug 2015 15:34:57 +0800 Subject: [PATCH 5/6] add Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License to README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ff8d635..9fec52c 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ [![Join the chat at https://gitter.im/lao605/shadowsocks_analysis](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/lao605/shadowsocks_analysis?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-nc-sa/4.0/"). + *此份代码仅用作学术交流用途,其他行为带来的后果本人概不负责* *This copy of code is for study of python only* From 57433af617ac52772e4ee255c08d3a2d8317a99a Mon Sep 17 00:00:00 2001 From: Lao Zhikun Date: Mon, 24 Aug 2015 20:41:01 +0800 Subject: [PATCH 6/6] improve README.md --- README.md | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/README.md b/README.md index 9fec52c..b660b5b 100644 --- a/README.md +++ b/README.md @@ -232,20 +232,5 @@ self._last_visits = collections.deque() ###### 3、因为最早访问时间访问过的键之后可能又访问了,所以要_keys_to_last_time ###### 4、找出那些没被访问过的,然后删除 -=============================================================== -##### 学到的其他东西: -###### 1、__future__ -###### 2、json.loads(f.read().decode('utf8'),object_hook=_decode_dict) -###### 3、python内置的logging也可作大规模使用 -###### 4、把我理解层面阔伸到协议层面,学到怎么构建一个协议(协议的设计还要学习) -###### 5、网络编程和信息安全息息相关 -###### 6、这个网络编程的学习路线挺不错的:爬虫-\>XX软件。不知道下一步怎么加深 - -一些问题: -###### 1、如何做到线程安全? -###### 2、大量对变量是否存在的检查是为了什么? -###### 3、FSM的思想怎么应用到网络编程? -###### 4、防火墙到底是怎么工作的?(其实这个问题我自己觉得问的挺逗的。。) -###### 5、linux的内核异步IO怎么调用(操作系统)