极简版nosql
来源:互联网 发布:美工对电脑配置的要求 编辑:程序博客网 时间:2024/06/04 19:19
只有set 和 get 功能
set a 1 这是set的形式
get a 这是get的形式
#!/usr/bin/env python
# coding: utf-8from twisted.internet.protocol import Protocol
from twisted.internet.protocol import Factory
from twisted.internet.endpoints import TCP4ServerEndpoint
from twisted.internet import reactor
import re
class Echo(Protocol):
#协议类实现用户的服务协议,例如 http,ftp,ssh 等
data_arr={}
def __init__(self, factory):
self.factory = factory
def connectionMade(self):
#连接建立时被回调的方法
self.transport.write("welcome caiwuluan!\n"+"caiwuluan > ")
def connectionLost(self, reason):
#连接关闭时被回调的方法
pass
def dataReceived(self, data):
#接收数据的函数,当有数据到达时被回调
is_set=re.findall(r'^set ',data)
is_get=re.findall(r'^get ',data)
if is_set:
set_data_arr=re.findall(r'set\s(\S*)\s',data)
if set_data_arr:
set_data=set_data_arr[0]
set_shuju_arr=re.findall(r'\s(\S*)$',data)
if set_shuju_arr:
set_shuju=set_shuju_arr[0]
self.data_arr[set_data]=set_shuju
self.transport.write('ok!'+'\ncaiwuluan > ')
elif is_get:
get_data_arr=re.findall(r'get\s(\S*)',data)
if get_data_arr:
get_data=get_data_arr[0]
if get_data in self.data_arr.keys():
self.transport.write(self.data_arr[get_data]+'\ncaiwuluan > ')
else:
self.transport.write('no this key!'+'\ncaiwuluan > ')
else:
self.transport.write('please (set a 1) or (get a)\n'+'caiwuluan > ')
class EchoFactory(Factory):
#协议工厂类,当客户端建立连接的时候,创建协议对象,协议对象与客户端连接一一对应
def buildProtocol(self, addr):
return Echo(self)
if __name__ == '__main__':
# 创建监听端口
reactor.listenTCP(8007, EchoFactory())
print 'server on listen 8007'
# 开始监听事件
reactor.run()
执行此文件开启服务
终端 netcat localhost 8007
阅读全文
0 0
- 极简版nosql
- NOSQL
- NoSQL
- NoSQL
- NOSQL
- Nosql
- NoSQL
- nosql
- noSQL
- NoSQL
- NoSQL
- nosql
- NoSQL
- nosql
- NoSQL
- NoSQL
- NoSQL
- NOSQL
- hive中null值得查询
- 正则表达式中的"^"这个符号的一些思考
- IOS移动操作系统开发入门介绍(书本教学式)
- (树状数组)KiKi's K-Number -- HDOJ
- 七、输入/输出流-- 七、输入/输出流--基于字符串的流---basic_istringstream 模板
- 极简版nosql
- 前端解决跨域问题的8种方案
- ajax跨域的问题
- layoutAnimation
- 不规范的英文名字编程首字母大写
- 【HDU 1068】Girls and Boys(二分图)
- 数串 -- JAVA 算法学习
- 解决:Couldn't load stlport_shared from loader dalvik.system.PathClassLoader
- Git合并特定Commits 到另一个分支