练习PYTHON之EPOLL

哟,哟,哟,,SELECT,EPOLL之类的,终于出现了。

不能太急了,要缓一缓,缓一缓,再缓一缓~~~~~~~~~

http://scotdoyle.com/python-epoll-howto.html

 

import socket

EOL1 = b'\n\n'
EOL2 = b'\n\r\n'
response  = b'HTTP/1.0 200 OK\r\nDate: Mon, 1 Jan 1996 01:01:01 GMT\r\n'
response += b'Content-Type: text/plain\r\nContent-Length: 13\r\n\r\n'
response += b'Hello, world!'

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serversocket.bind(('0.0.0.0', 8080))
serversocket.listen(1)

connectiontoclient, address = serversocket.accept()
request = b''
while EOL1 not in request and EOL2 not in request:
   request += connectiontoclient.recv(1024)
print(request.decode())
connectiontoclient.send(response)
connectiontoclient.close()

serversocket.close()

时间: 2024-10-09 21:41:50

练习PYTHON之EPOLL的相关文章

【资料整理】Python - 简单的epoll server代码解读

      作为 Python 的初学者,学习别人的代码也是必要过程,本文主要是针对 < Python中使用epoll开发服务端程序 >中的代码,进行源码注释说明.从代码中至少可以学习到如下三点: logging 模块的使用: epoll 的使用: 如何利用 try...catch 来处理"读穿". ============ 我是分割线 ==============  server端代码:  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

python网络编程——IO多路复用之epoll

来源:http://www.cnblogs.com/maociping/p/5132583.html 1.内核EPOLL模型讲解     此部分参考http://blog.csdn.net/mango_song/article/details/42643971博文并整理     首先我们来定义流的概念,一个流可以是文件,socket,pipe等可以进行I/O操作的内核对象.不管是文件,还是套接字(socket),还是管道(pipe),我们都可以把他们看作流.     之后我们来讨论I/O操作,通

Python异步非阻塞IO多路复用Select/Poll/Epoll使用

来源:http://www.haiyun.me/archives/1056.html 有许多封装好的异步非阻塞IO多路复用框架,底层在linux基于最新的epoll实现,为了更好的使用,了解其底层原理还是有必要的. 下面记录下分别基于Select/Poll/Epoll的echo server实现. Python Select Server,可监控事件数量有限制: #!/usr/bin/python # -*- coding: utf-8 -*- import select import sock

Zato:基于Python的ESB和后端应用服务器

概述 Zato是一个用Python编写的开源ESB和应用服务器.按照设计,它用于构建后端应用程序(即仅是API)和在SOA中整合系统. 查看Zato的项目文档点击这里,查看其GitHub页点击这里. Zato的目标用户是使用Python或者Ruby和PHP等其它动态语言的开发人员,或者是那些考虑在工作中尝试动态语言的技术团队,后者或是因为看到动态语言在其它地方使用,或是因为愿意尝试用其中一种动态语言编写的非前端系统. 该平台是轻量级但完整的,它涵盖了架构师.程序员或者系统管理员的所有视角,对许多

Python中利用生成器实现的并发编程

  这篇文章主要介绍了简单介绍Python中利用生成器实现的并发编程,使用yield生成器函数进行多进程编程是Python学习进阶当中的重要知识,需要的朋友可以参考下 我们都知道并发(不是并行)编程目前有四种方式,多进程,多线程,异步,和协程. 多进程编程在python中有类似C的os.fork,当然还有更高层封装的multiprocessing标准库,在之前写过的python高可用程序设计方法中提供了类似nginx中master process和worker process间信号处理的方式,保

谈谈Python协程技术的演进

一.引言 1. 存储器山 存储器山是 Randal Bryant 在<深入理解计算机系统>一书中提出的概念. 基于成本.效率的考量,计算机存储器被设计成多级金字塔结构,塔顶是速度最快.成本最高的 CPU 内部的寄存器(一般几 KB)与高速缓存,塔底是成本最低.速度最慢的广域网云存储(如百度云免费 2T ) 存储器山的指导意义在于揭示了良好设计程序的必要条件是需要有优秀的局部性: 时间局部性:相同时间内,访问同一地址次数越多,则时间局部性表现越佳; 空间局部性:下一次访问的存储器地址与上一次的访

Python资源大全

The Python Tutorial (Python 2.7.11) 的中文翻译版本.Python Tutorial 为初学 Python 必备官方教程,本教程适用于 Python 2.7.X 系列. 在线阅读 » Fork Me » The Python Tutorial (Python 3.5.1) 的中文翻译版本.Python Tutorial 为初学 Python 必备官方教程,本教程适用于 Python 3.5.x. 在线阅读 » Fork Me » Flask 是一个轻量级的 We

python之socket编程

From : http://www.cnblogs.com/aylin/p/5572104.html 1.socket         socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写][关闭]模式来操作.socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO.打开.关闭)         基本上,Socket 是任何一种计算机网络通讯中最基础的内容.例如当你在浏览器

coroutine in Python Tornado and NodeJs

yield and generator will be the front knowledge of this article. And you should also have some sense ofepoll/kqueue and callback style. Let's enjoy the source code of the implement of coroutine. Python Tornado A simple async fetch function used by a