python高并发异步服务器核心库forkcore使用方法


Posted in Python onNovember 26, 2013

1 拷贝下面的代码到一个文件,并命名为forkcore.py

import os
import threading
import select
import socket
class ds_forkcore(object):
    #async IO(epoll)
    def ds_epoll(self):
        epoll=select.epoll()
        epoll.register(self.s.fileno(),select.EPOLLIN|select.EPOLLET)
        while 1:
            epoll_list=epoll.poll()
            for fd,_events in epoll_list:
                if fd==self.s.fileno():
                    conn,addr=self.s.accept()
                    print "Current process's pid is "+str(os.getpid())
                    self.worker(conn,addr)
    #multi_thread
    def ds_thread(self,thread_num=100):
        for _ in range(0,thread_num):
            t=threading.Thread(target=self.ds_epoll)
            t.setDaemon(1)
            t.start()
            t.join()
    #multi_process
    def ds_process(self,child_process_num=8):
        pid=os.getpid()
        print "Main process start, pid is "+str(pid)
        for _ in range(0,child_process_num):
            if pid==os.getpid():
                if os.fork():
                    pass
                else:
                    print "Worker process start, pid is "+str(os.getpid())
                    self.ds_thread()
    #init function
    def __init__(self,worker,port=3333):
        s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
        s.bind(("",port))
        s.listen(50000)
        self.s=s
        self.worker=worker
        self.ds_process()

2 编写自己的代码

1> 导入forkcore库。

2> 定义worker函数,worker函数需要两个参数,conn代表客户端连接的socket,addr是(ip,port)的元组。

3> 直接使用forkcore.ds_forecore(worker,port=5555)即可,port用于指定监听端口。

import forkcore
if __name__=="__main__":
    def worker(conn,addr):
        print "Message from ("+str(addr[0])+":"+str(addr[1])+"): "+conn.recv(1024)[0:-1]
    forkcore.ds_forkcore(worker,port=5555)

注:需要linux 2.6以上的内核

Python 相关文章推荐
仅利用30行Python代码来展示X算法
Apr 01 Python
Python文档生成工具pydoc使用介绍
Jun 02 Python
django在接受post请求时显示403forbidden实例解析
Jan 25 Python
DataFrame中去除指定列为空的行方法
Apr 08 Python
python通过伪装头部数据抵抗反爬虫的实例
May 07 Python
uwsgi+nginx部署Django项目操作示例
Dec 04 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
pytorch 模型的train模式与eval模式实例
Feb 20 Python
python中count函数知识点浅析
Dec 17 Python
利用python为PostgreSQL的表自动添加分区
Jan 18 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 Python
详解Python类和对象内容
Jun 22 Python
跨平台python异步回调机制实现和使用方法
Nov 26 #Python
python连接池实现示例程序
Nov 26 #Python
使用python BeautifulSoup库抓取58手机维修信息
Nov 21 #Python
python BeautifulSoup使用方法详解
Nov 21 #Python
python装饰器使用方法实例
Nov 21 #Python
tornado框架blog模块分析与使用
Nov 21 #Python
python迭代器的使用方法实例
Nov 21 #Python
You might like
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
控制PHP的输出:缓存并压缩动态页面
2013/06/11 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
php中请求url的五种方法总结
2017/07/13 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
js实现每日签到功能
2018/11/29 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
js实现简单扫雷
2020/11/27 Javascript
Python计时相关操作详解【time,datetime】
2017/05/26 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
解决python 输出是省略号的问题
2018/04/19 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
Python控制台实现交互式环境执行
2020/06/09 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
火车来了教学反思
2014/02/11 职场文书
优秀大学生求职自荐信范文
2014/04/19 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书