1.使用BT下在的源码原理和利和弊
2.要成为一名专业的程序员,从零开始需要怎么一步步来比较好,源码要把最底层的源码先学精通吗?(个人认为)求学长
使用BT下在的原理和利和弊
BT运行原理分析及内网提速方法
由於内网用户无法提供一个对外的端口,所以无法做服务器.但用BT的时候,发现它可以让内网用户做 Send,作为程序员就忍不住下载了它的源代码分析了一把(为了看它,还专门去写了一下Python:})
比起其他的P2P软件,BT有个独特的地方,它存在一个中间的WEB服务器,就是我们在发布的时所填写的announce.该服务器提供了发布的统一管理,不像其他P2P软件那样到处去找哪些非常不稳定的个人服务器,相对起来让人安心的多.
该WEB服务器更大的作用是内网用户可以做 Send(下面会说明原理),这是其他软件无法做到的,但不好的地方是announce当机的时候就无法下载了,要知道P2P下载关键是要人气要高,announce停一下就搞到人气全没有了
.torrent 的作用
大家都知道我们要用BT下载 ,就要先下载一个.torrent文件,这个文件到底有甚麼呢:
首先是 announce 纪录了发布服务器的位置,让BT知道是那个WEB服务器发布的
然后是一些文件信息,文件名,目录名,长度等等
最后是片段长度,和片段的 Sha1 校验码
(BT为了事现续传和文件校验,就把文件分成若干个片段)
大家可以用写字板打看torrent文件看看,就是知道个大概,后面的乱码是片段 Sha1 校验码
开始-续传的实现 sha校验
BT 打开一个 torrent文件后,先要你选择文件保存那里.然后判断文件不存在的话就建立新文件,存在的话就用 Sha1 校验码去校验文件---错误的就是还没下载的,这样就可以实现续传了,但位校验,想不慢都不行
得到 peer
现在知道要下载甚麼了,到那里下载呢?这就要寻找有谁提供上传了,这里BT是通过WEB服务器来实现的,首先BT会通过分析 torrent 来得到一面一串网址
stat/kill/tcpdump/iptables/dd…
了解/etc目录下的各种配置文章,学会查看/var/log下的源码系统日志,以及/proc下的源码人鱼奇缘 源码系统运行信息
了解正则表达式,使用正则表达式来查找文件。源码账号注册html源码
对于程序员来说Unix/Linux比Windows简单多了。源码(参看我四年前CSDN的源码博文《其实Unix很简单》)学会使用Unix/Linux你会发现图形界面在某些时候实在是太难用了,相当地相当地降低工作效率。源码
4、源码 学习Web基础(HTML/CSS/JS) + 服务器端技术 (LAMP)
未来必然是源码Web的世界,学习WEB基础的源码最佳网站是W3School。
学习HTML基本语法
学习CSS如何选中HTML元素并应用一些基本样式(关键词:box model)
学会用 Firefox + Firebug 或 chrome 查看你觉得很炫的源码gps源码csdn下载网页结构,并动态修改。源码
学习使用Javascript操纵HTML元件。源码理解DOM和动态网页(Dynamic HTML: The Definitive Reference, 3rd Edition - O'Reilly Media) 网上有免费的章节,足够用了。最新php企业源码或参看 DOM 。
学会用 Firefox + Firebug 或 chrome 调试Javascript代码(设置断点,查看变量,性能,修改软件源码软件控制台等)
在一台机器上配置Apache 或 Nginx
学习PHP,让后台PHP和前台HTML进行数据交互,对服务器相应浏览器请求形成初步认识。实现一个表单提交和反显的功能。
把PHP连接本地或者远程数据库 MySQL(MySQL 和 SQL现学现用够了)
跟完一个名校的网络编程课程(例如:(升级版为Kyoto Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。