Chinaunix

标题: Twisted聊天服务器 [Twisted] [打印本页]

作者: lvDbing    时间: 2008-09-21 03:30
标题: Twisted聊天服务器 [Twisted]


如果你之前没有安装Twisted模块,则先安装(包括安装zope.interface模块):
http://www.zope.org/Products/ZopeInterface
http://twistedmatrix.com/trac/

下载最新版本的tar包,然后安装
安装方法很简单,都是:
1. 解压缩
2. python setup.py build
3. python setup.py install

[root@lvdbing python]# cat twistedchatserver.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# vim: set ai cindent et sw=4 ts=4 nowrap foldmethod=marker:
from twisted.internet.protocol import Factory
from twisted.protocols.basic import LineOnlyReceiver
from twisted.internet import reactor
class Chat(LineOnlyReceiver):
    def lineReceived(self, data):
        self.factory.sendAll("%s: %s" % (self.getId(), data))
    def getId(self):
        return str(self.transport.getPeer())
    def connectionMade(self):
        print "New connection from", self.getId()
        self.transport.write("Welcome to the chat server, %s\n" % self.getId())
        self.factory.addClient(self)
    def connectionLost(self, reason):
        self.factory.delClient(self)
class ChatFactory(Factory):
    protocol = Chat
    def __init__(self):
        self.clients = []
    def addClient(self, newclient):
        self.clients.append(newclient)
    def delClient(self, client):
        self.clients.remove(client)
    def sendAll(self, message):
        for proto in self.clients:
            proto.transport.write(message + "\n")
reactor.listenTCP(51423, ChatFactory())
reactor.run()


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/20294/showart_1211976.html




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2