典型的Twisted Server架构与原理
Twisted 会自动的接收传过来的连接请求,并创建一个client socket 连接server 和 client,这个client socket也被加入事件循环,然后Twisted 创建一个新的transport 和一个Protocol 的实例来为这个client socket 服务,所以Protocol 实例是一直和client socket 连着的,而不是负责监听的socket
... 阅读全文
Twisted Matrix 是一种越来越受欢迎的纯 Python 框架,用来进行网络服务和应用程序的编程。
Reactor
twisted 中有多种reactor 的实现,select 仅仅是其中的一中实现方法,也是twisted默认使用的方法。twisted中也包含其他的reactor 的实现方式,比如twisted.internet.pollreactor使用poll 的方式来实现,另外twisted也支持epoll方式,对于高性能高并发服务器的开发,epoll会是个好的选择,网上的一篇
... 阅读全文
Python里里面有个platform模块,可以得到操作系统的相关信息
某台Window 7笔记本上platform获取的信息如下
_node() = X200
_sys_version() = ('2.5.2', 'r252:60911', 'Feb 21 2008 13:11:45', 'MSC v.1310 32 bit (Intel)')
_syscmd_ver() = ('', '', '')
architecture() = ('32bit', 'WindowsPE')
dist() = ('', '', '')
java_ver() = ('', '', ('', '', ''), ('', '', ''))
libc_ver() = ('', '')
mac_ver() = ('', ('', '', ''), '')
machine() =
node() = X200
platform() = Windows-32bit-SP1
processor() =
python_build() = ('r252:60911', 'Feb 21 2008 13:11:45')
python_compiler() = MSC v.1310 32 bit (Intel)
python_version() = 2.5.2
python_version_tuple() = ['2', '5', '2']
release() =
system() = Windows
uname() = ('Windows', 'X200', '', '32bit', '', '')
version() = 32bit
win32_ver() = ('', '6.1.7601', 'SP1', 'Multiprocessor Free')
... 阅读全文
在SUSE中用Yast安装了vsftpd服务后,发现服务无法正常启动,经验小结下:
1、/etc/vsftpd.conf的配置如下配置,缺一不可:
local_enable=YES
listen=YES
pam_service_name=vsftpd
2、其中如果listen不配置为YES,vsftpd根本启动不起来
3、local_enable不配置为YES,Linux本地系统用户无法登录
... 阅读全文