属性:
username
name
_socket
unread
方法
IRCPushMessage(IRCMessage) int 给该用户发送消息
IRCRead() IRCRequest 从用户套接字读取数据
属性:
users
name
方法
IRCBroadcast(IRCMessage)
IRCJoin(User)
属性:
raw
op
args
属性
hostname
code
msg
方法
ToString
属性
users_map # 全局用户表
channel_map # 全局频道表
_socket # listen fd
方法
RunServe(int port)
执行 IRCServer.Runserve 后, 初始化服务器的套接字, 并且监听链接,
当接受到用户 建立链接后, 开一个线程, 处理用户的登录请求, (此后所有步骤都处理成IRCRequest)
用户的登录请求会建立一个新的用户, 并且放入 IRCServer的表中 , 对 IRCServe表的操作全部加锁, 并且在该线程内 while( req = user.IRCRead())
收到 req 根据 req 的参数 从 IRCServer 找到发送的User 调用 PushMessage 发送失败时候把消息 放入unread, 用户登录时候推给用户
处理方法类似