仔细想了一下,比起把虚假地址指向黑洞外,先将需要代理的地址放入代理更加重要。所以先不考虑黑洞路由的功能了。
原来的代码换成了多线程去处理后,也老崩溃。自己不懂太多的编程,不过我认为用socket中提供的ThreadingUDPServer比自己去实现肯定要好得多。更改了基本所有代码后,崩溃的情况明显减少。
代码逻辑部分也调整了一下,原来对于需要代理的域名,也要做本地请求,然后从中剔除污染的地址。如果所有本地返回的结果都是污染过的,那就返回远程服务器的结果。不过后来自己想完全没这必要,对于需要代理的域名,直接使用远程服务器的结果,不需要的使用本地服务器结果。返回的远程结果提取出记录,由另外的线程处理。这样对效率是由提升的(至少我直觉如此)
而针对可能有很多人使用免费限流的VPN时,可能会同时拥有多个VPN情况(我就是如此),加入了支持多个VPN的功能。比如有A,B,C三个VPN,那么第一条路由指向A,第二条指向B,第三条指向C,第四条指向A……这样可以相对比较均匀的使用多个VPN的流量。
Nov 19, 2010
smartVPN项目开发记录 (四)
Posted by Ken Lai on 12:48:00 PM
0 comments:
Post a Comment