Twisted 是Python中有名的网络库,实现的reactor模式。http://twistedmatrix.com/trac/里面有很多小demo
这里实现简单的客户端与服务端,并且配套有发送,接收数据的代码。
启动服务端 main.py
from tcp import *
def main():
f = ServerFactory()
f.protocol = PyTCPServer
reactor.listenTCP( 10008, f )
reactor.run()
if __name__ == '__main__':
main()
PyTcpServer实现 tcp.py
提供:
(1)客户端连接到服务端的消息
(2)客户端退出的消息
(3)数据接收和发送
(4)对发送数据的序列化
(5)对接收数据的拆包与合并[package.py]
(6)数据包的流向控制[dispatch.py]
from twisted.internet.protocol import Protocol, Factory, ServerFactory
from twisted.internet import reactor
import re
import string
import time
from package import *
from dispatch import *
class PyTCPServer( Protocol ):
def __init__( self ):
self.p = PyPackager