上篇文章写了一个简单的单线程的一问一答的简单聊天室。这次我们使用SocketServer模块搭建一个多线程异步的聊天室。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # -*- coding:utf-8 -*-importSocketServerclassmysocketclass(SocketServer.BaseRequestHandler):    defhandle(self):        client_information=self.request;  #获取客户端的信息,相当于accept        client_information.send(‘Welcome!‘);        whileTrue:            data =client_information.recv(1024)            ifdata ==‘exit‘:                client_information.close();            else:                print‘**Client**:‘,(data);                client_information.send("ok");if__name__==‘__main__‘:    ip_add=(‘127.0.0.1‘,9998);    server=SocketServer.ThreadingTCPServer(ip_add,mysocketclass);    server.serve_forever(); | 
客户端
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | #-*-coding:utf-8-*-importsocketsocket_object=socket.socket();ip_add=(‘127.0.0.1‘,9998);socket_object.connect(ip_add);whileTrue:    print‘**Server**:‘,(socket_object.recv(1024))    seend_content=raw_input(‘Client:‘);    socket_object.send(seend_content)    ifseend_content==‘exit‘:        socket_object.connect.close(); | 
从代码可以看出,客户端的内容是没变的。变动的是服务端采用了模块SocketServer
运行截图:

下一次我们加上数据库,实现登录,注册的聊天室
原文地址:http://rexyan.cn/article/25
Rex博客保留所有权利
原文:http://www.cnblogs.com/rexyan/p/6166126.html