曲线救国,解决Mac系统下,Android sdk下载失败的问题

Mac下翻_墙的问题

话说GFW屏蔽谷歌已经有一阵子了,最近打算在Mac系统下折腾个Android应用,备好了IDE,只欠SDK,无奈下载时因为GFW的缘故,总是失败,我心痛哉!

由于本人偏爱Mac系统,于是便开始折腾Mac下的翻_墙问题,试过Break Wall,鱼摆摆,*,居然没有一个好用的!在公司办公的时候使用的都是Windows系统,需要翻_墙的时候,我都用自(he)由(xie)门这个东东,简单好使,实乃翻_墙神器也,可惜没有Mac的版本,这可咋整??????(博客园居然屏蔽\自\由\门这个关键字,⊙﹏⊙b汗)

家里2台电脑,一台Mac,一台Windows(我的游戏机),心想,要不Windows翻_墙,然后Mac接入Windows进行翻_墙不就行了。

于是,赶紧打开了Windows下的自(he)由(xie)门:

曲线救国,解决Mac系统下,Android sdk下载失败的问题

自(he)由(xie)门在本地开通了8580用作代理翻_墙端口,通过telnet 192.168.1.240 8580测试我windows的端口情况,发现不通,看了自(he)由(xie)门留了一手,监听ip是127.0.0.1,也就是只能通过127.0.0.1:8580去使用端口。

曲线救国,解决Mac系统下,Android sdk下载失败的问题

看来Mac直接访问Windows的自(he)由(xie)门代理是不行了。

开发Socket代理,解决Mac不能访问Windows自(he)由(xie)门代理的问题

心想,既然你自(he)由(xie)门只能通过127.0.0.1访问,那我何不开发个socket代理,对外开放一个端口,然后将端口的数据直接转发到8580上,这样应该就能解决Mac不能访问Windows自(he)由(xie)门代理的问题了。

嗯,思路不错,那就开搞一个吧,大晚上的时间有限,我就简单的用Nodejs开发了一个socket代理程序,话说用Nodejs开发网络应用这是超爽啊,socket代理代码如下:

var net = require('net');

var server = net.createServer(function(c) { //'connection' listener
console.log(c.remoteAddress); // 暂停socket的数据处理
c.pause();
var client = net.connect({host:'127.0.0.1', port: 8580},
function() { //'connect' listener
// 连上自(he)由(xie)门代理了,可以去处理socket数据了
c.resume();
console.log('connected to proxy');
});
// 将过来的数据发给自(he)由(xie)门,然后将自(he)由(xie)门回过来的数据,原封不动的转发出去
c.pipe(client); }); server.listen(8124, function() { //'listening' listener
console.log('server bound');
}); process.on('uncaughtException', function(err) {
console.log('Caught exception: ' + err);
});

Socket代理的运行效果如下:

曲线救国,解决Mac系统下,Android sdk下载失败的问题

Mac下配置http代理,访问Windows的自(he)由(xie)门,进行翻_墙

进入Mac,打开Android Sdk Manager,系统菜单中选择,Preferences,如下如:

曲线救国,解决Mac系统下,Android sdk下载失败的问题

然后设置Http代理服务器和端口信息,如下如:

曲线救国,解决Mac系统下,Android sdk下载失败的问题

注意:上面的192.168.1.240就是我的Windows电脑的ip,8124端口是socket代理的端口哦,它负责把Mac过来的http请求直接丢给自(he)由(xie)门,这样就可以翻_墙下载了。

最终解决了Mac下Android SDK下载失败的问题

看看下载效果吧:

曲线救国,解决Mac系统下,Android sdk下载失败的问题

嗯,搞定android sdk了,关机,睡觉觉!

上一篇:[Android]Android端ORM框架——RapidORM(v1.0)


下一篇:Microsoft Visual Studio 2010 已安装的模板 没有 “ADO.NET实体数据模型”