免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2666 | 回复: 0
打印 上一主题 下一主题

Twisted聊天服务器 [Twisted] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-21 03:30 |只看该作者 |倒序浏览


如果你之前没有安装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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP