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以上的内核
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。