练习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-14 06:40:46

练习PYTHON之EPOLL的相关文章

python的epoll及EPOLLLT

今天没事练习python的epoll,一开始写了个客户端: #! /usr/python import socket,sys,select c=socket.socket(socket.AF_INET,socket.SOCK_STREAM) host = '127.0.0.1' port=57777 c.connect((host,port)) epoll_fd = select.epoll() epoll_fd.register(c.fileno(),select.EPOLLIN) epoll

python之epoll服务器源码分析

#!/usr/bin/env python # -*- coding: utf8 -*- import socket, select EOL1 = b'/r/n' EOL2 = b'/r/n/r/n' # 拼接成的response 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

python 使用epoll异步处理多个客户端的连接

服务器端: #-*- coding:utf8 -*- import socket import select import os address = "0.0.0.0" port = 10001 sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) def main(): global address,port,sock epoll = select.epoll() #获取创建好的sock的文件描述符 fd = sock.fil

转一贴,今天实在写累了,也看累了--【Python异步非阻塞IO多路复用Select/Poll/Epoll使用】

下面这篇,原理理解了, 再结合 这一周来的心得体会,整个框架就差不多了... http://www.haiyun.me/archives/1056.html 有许多封装好的异步非阻塞IO多路复用框架,底层在linux基于最新的epoll实现,为了更好的使用,了解其底层原理还是有必要的.下面记录下分别基于Select/Poll/Epoll的echo server实现.Python Select Server,可监控事件数量有限制: 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Python——在Python中如何使用Linux的epoll

在Python中如何使用Linux的epoll 目录 序言 阻塞socket编程示例 异步socket的好处以及Linux epoll 带epoll的异步socket编程示例 性能注意事项 源代码 序言 从2.6开始,Python包含了访问Linux epoll库的API.这篇文章用几个简单的python 3例子来展示下这个API.欢迎大家质疑和反馈. 阻塞socket编程示例 示例1用python3.0搭建了一个简单的服务:在8080端口监听HTTP请求,把它打印到控制台,并返回一个HTTP响

# 进程/线程/协程 # IO:同步/异步/阻塞/非阻塞 # greenlet gevent # 事件驱动与异步IO # Select\Poll\Epoll异步IO 以及selectors模块 # Python队列/RabbitMQ队列

1 # 进程/线程/协程 2 # IO:同步/异步/阻塞/非阻塞 3 # greenlet gevent 4 # 事件驱动与异步IO 5 # Select\Poll\Epoll异步IO 以及selectors模块 6 # Python队列/RabbitMQ队列 7 8 ############################################################################################## 9 1.什么是进程?进程和程序之间有什么

python网络编程——socket进阶篇(select/poll/epoll)

原 生socket客户端在与服务端建立连接时,即服务端调用accept方法时是阻塞的,同时服务端和客户端在收数据(调用recv)时也是阻塞的.原生 socket服务端在同一时刻只能处理一个客户端请求,即服务端不能同时与多个客户端进行通信,实现并发,导致服务端资源闲置(此时服务端只占据 I/O,CPU空闲). 现在的需求是:我们要让多个客户端连接至服务器端,而且服务器端需要处理来自多个客户端请求.很明显,原生socket实现不了这种需求,此时我们该采用什么方式来处理呢? 解决方法:采用I/O多路复

python 简单搭建非阻塞式单进程,select模式,epoll模式服务

由于经常被抓取文章内容,在此附上博客文章网址:,偶尔会更新某些出错的数据或文字,建议到我博客地址 :  --> 点击这里 1 单进程服务器 - 非堵塞模式 服务端 : #coding=utf-8 from socket import * import time #用来存储所有的新连接的socket,这个是重点 g_socketList = [] def main(): serSocket = socket(AF_INET, SOCK_STREAM) serSocket.setsockopt(SO

Python网络编程篇之select和epoll

1. select 原理 在多路复?的模型中, ?较常?的有select模型和epoll模型. 这两个都是系统接?, 由操作系统提供. 当然, Python的select模块进?了更?级的封装. ?络通信被Unix系统抽象为?件的读写, 通常是?个设备, 由设备驱动程序提供, 驱动可以知道?身的数据是否可?. ?持阻塞操作的设备驱动通常会实现?组?身的等待队列, 如读/写等待队列?于?持上层(?户层)所需的block或non-block操作. 设备的?件的资源如果可?( 可读或者可写) 则会通知