使用PyQt4和twisted写的局域网聊天室(1)
最近学习Python,尝试实现一个简单的局域网聊天室,支持P2P聊天,使用PyQt4编写界面,网络采用twisted,主要仿照swan-talk:(http://code.google.com/p/swan-talk
)编写。
Msg消息格式如下:
-
收取信息MsgRcv,发送信息MsgSnd。
- 用户登入:聊天显示“XX进入房间。”
消息格式:LOGIN + userName + password + statusMessage - 用户登出:聊天显示“XX离开房间。”
消息格式:LOGOUT + userName - 公共聊天:聊天显示“XX >> content。”
消息格式:COMMONCHAT + userName + content - 开始私人聊天:
消息格式:NEWPRIVATE + userName + recipient - 私有聊天:聊天显示“XX->XX >> content。”
消息格式:PRIVATECHAT + userName + recipient + content - 用户名已存在:聊天显示“XX用户已存在,请修改用户名称。”
消息格式:USEREXISTED + userName + content - 新用户接收老用户状态信息
消息格式:USERLIST + userName + statusMessage - 老用户同时接收新用户状态信息
消息格式:NEWUSER + userName + statusMessage
- 用户登入:聊天显示“XX进入房间。”
目前用户密码和状态信息尚未添加,但基本的聊天实现已经没有问题。
其中公共模块为qt4reactor.py,来自网站:(http://sourcecodebrowser.com/openvswitch/1.1.0~pre2.g2.ea763e0e/qt4reactor_8py_source.html)
服务端包括qt4guiServer.py、qt4reactor.py、server.py。
客户端包括qt4guiClient.py、qt4guiPTalk.py、qt4reactor.py、client.py。