s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) for data in [b'Michael', b'Tracy', b'Sarah']: # 发送数据: s.sendto(data, ('127.0.0.1', 9999)) # 接收数据: print(s.recv(1024).decode('utf-8')) s.close()
做了一个简单的对比,可见UDP的传输方式比TCP快了很多。
Web开发
随着互联网流行起来的B/S模式是Web开发的主要内容,包括客户端展现(HTML、CSS、JAVASCRIPT)以及服务端处理(静态内容、CGI、动态语言)。Python提供了很多Web开发框架,能够为我们提供Web开发的快速支持。 开始WEB开发的话我觉得最好从HTML入手,然后了解HTTP协议,这些熟悉之后逐步熟悉CSS、Javascript,然后了结合后台编程语言,完成自己编写网站的小目标。 笔者是从PHP学习开始Web开发的,接触Python的Web开发还沿用PHP的思路会产生一些迷惑。PHP从产生之初就是作为Web开发语言而设计的,PHP是作为Apache的模块来进行请求处理和响应的,与HTTP相关的很多基础处理都是由Apache完成的,mod_php模块与其对接生成类似$_POST,$_GET的对象供PHP脚本使用。 Python有所不同,Python是作为一种通用脚本处理语言产生的,所以它能够完成的工作更多,也可以作为Web开发语言,只是方式不同。如果Python作为服务端脚本语言,可以分几个层次:如果Python负责处理所有的事务,包括TCP链接、逻辑处理、内容响应,Python也是可以胜任的,但是这样开发要做的工作就非常多;如果Python只是负责生成HTML文档,前端使用Apache等,Pyhon只需要负责文档解析。实现这个层次,是因为Python提供了WSGI接口(Web Server Gateway Interface),这时Python的焦点放在接口处理和Web逻辑处理上。第三个层次就是使用Python的Web框架,现在有很多成熟的框架,包括Django、Flask等。这样,Python就主要关注Web处理,包括URL以及对应的函数处理。 先看一下使用WSGI接口编写简单的Web程序,返回一个简单的文字。
1 2 3 4 5 6 7 8 9 10 11
# server.py # 从wsgiref模块导入: from wsgiref.simple_server import make_server # 导入我们自己编写的application函数: from hello import application
# 创建一个服务器,IP地址为空,端口是8000,处理函数是application: httpd = make_server('', 8000, application) print('Serving HTTP on port 8000...') # 开始监听HTTP请求: httpd.serve_forever()