twisted-02 ChatRoom
来源:互联网 发布:苗阜与姜昆的关系知乎 编辑:程序博客网 时间:2024/05/17 18:14
使用twisted编写的chatroom,使用windows自带的telenet作为客户端。
from twisted.internet.protocol import Factoryfrom twisted.internet import reactorfrom twisted.protocols.basic import LineReceiverfrom twisted.internet.endpoints import serverFromString'''window: use telnet localhost 8888to enter chat room and chat with othersctrl + ] to disconnect to server'''class ChatRoomProtocol(LineReceiver):def __init__(self):self._name = Nonedef connectionMade(self):self.sendLine('What\'s your name?')def lineReceived(self, line):if not self._name:if not line.strip() or line in list(iter(self.factory._users)):self.sendLine('Your name is corrupt or invalid, please reinput your new name!')returnself._name = lineself.factory._users[line] = self self.sendLine('Welcome %s to our chat room' % self._name)returnmsg = '%s says: %s' % (self._name, line)self.factory.boardMessage(msg)def connectionLost(self, reason):msg = '%s says: bye bye !' % self._nameself.factory.boardMessage(msg)del self.factory._users[self._name]class ChatRoomFactory(Factory):protocol = ChatRoomProtocoldef __init__(self):self._users = {}def boardMessage(self, msg):for i in self._users:self._users[i].sendLine(msg)if __name__ == '__main__':serverFromString(reactor, 'tcp:8888').\listen(ChatRoomFactory())reactor.run()
1 0
- twisted-02 ChatRoom
- twisted
- Twisted
- Twisted
- pomelo chatroom
- JoyChat AJAX Chatroom
- WPF WCF ChatRoom展示
- ChatRoom 聊天室设计文档
- Mediator Pattern -ChatRoom Application
- 第十二天:chatroom
- 第十三天:chatroom
- MFC SOCKET CHATROOM
- 微信 @chatroom 信息:
- drupal上安装chatroom
- netty websocket chatroom
- ChatRoom新春版
- WPF WCF ChatRoom 完结编
- php-swoole-memcached-chatroom-demo
- C#高级编程七十二天----DynamicObject和ExpandoObject
- 二 cocos2dx 之 解析xml文件数据并在程序中调用,存储
- HDU 2157 How many ways?? (DP)
- Java 里把 InputStream 转换成 String 的几种方法
- iPhone6分辨率与适配
- twisted-02 ChatRoom
- Java 并发专题 :闭锁 CountDownLatch
- linux
- hdu题目分类
- 1005 Graduate Admission&&QSORT的用法
- MySQL 常用命令
- 包治关机速度慢 适用于 mac os x 10.9.2 系统
- Unity (二)
- 使用Git命令从Github远程仓库更新项目