python网络编程需要学习哪些网络相关的知识?

学习python有很长一段时间了,可是一直感觉都没有啥子明显的进示。最近想了想,还是觉得自己目标不够明确,不清楚到底学了后能做些什么(业余人士,学编程就是爱好),因此什么都在看,但却什么都没成。总结了下,确定在网络编程方面的深入一下,麻烦大家指教下需要学些什么样的东西。回复内容:
python网络编程是一个很大的范畴,个人感觉需要掌握的点有: 1. 如何使用python来创建socket, 如何将socket与指定的ip地址和端口进行绑定,使用socket来发送数据,接受数据, 2. 如何使用python中处理线程,从而编写可以同时处理多个请求的web服务器 3. 如何使用python来控制http层的逻辑,包括如何创建http get,post,put,delete请求,如何处理接受到的http请求,这些分别涉及python的httplib, basehttpserver等模块 4. 掌握一种基本的python的web开发框架,比如webpy, django,pylon 5. 了解非阻塞式的http server,比如tornado 6. 了解twisted, python编写的消息驱动的网络引擎 参考资料:网络基础知识1. http: the definitive guide http://www.amazon.com/http-definitive-guide-david-gourley/dp/1565925092/2. computer networking: a top-down approach http://www.amazon.com/computer-networking-top-down-approach-edition/dp/0136079679/refpython 网络编程基础 1. python 网络编程 http://www.amazon.com/foundations-python-network-programming-goerzen/dp/1590593715 2. python socket编程的文档 http://docs.python.org/library/socket.html 3. python httplib的文档 http://docs.python.org/library/httplib.htmlpython常用框架文档: 1. django 的官方网站 https://www.djangoproject.com/ 2. twisted 的官方网站 http://twistedmatrix.com/trac/ 3. tornado 的官方网站 http://www.tornadoweb.org/
就我个人的经验,不妨:1.写出基本的tcp连接,知道编写tcp的各个步骤,例如创建socket、绑定port、端口复用等,对tcp稍微做了解,知道协议的每个字段,了解三次握手。2.了解基本的服务器并发模型,例如多进程、多线程、io复用3.了解一些网络库例如twisted其实想研究深入还得去读《unp》《tcpv1》之类的书籍,但是这类语言都是基于c的。我是在linux下编写c++程序的,我的感觉是要钻研的深入,一般都是用c来描述,用python这种语言,抽象层次高,容易抓住重点,适合上手,但是同时也规避了很多问题
一般来说分为web编程和网络编程,所以最好分清两者的概念。前者更倾向于去学习一些主流的框架以及自己搭建站点,后者则是从更底层上去描述与实现。所以建议先找到感兴趣的,在好好研究。
可以参考下面这个答案,这个答案对英语不好如何看技术英文文档的问题也有参考性,对照源码读http://docs.python.org/2/library/对英文有帮助。

__cutline_start__ = ‘-‘ * 20 + ‘以下转发赖勇浩的答案’ + ‘-‘ * 20

不清楚你具体指的是底层的网络编程,还是偏应用的web开发。如果是做网站的话,那是web开发,建议先去看python的web开发框架,推荐从django开始,文档比较详细django:https://www.djangoproject.com/
socket programming in python这里有个简单的教程
我也在学,第一感觉是先学好英语
学习完网络编程基础知识后. 强烈建议学习twisted.

Posted in 未分类

发表评论