服务器和每个客户端都用TcpListener监听某个约定的端口,客户端上线时发送状态到服务器(且每隔规定的时间要重发上线状态),服务器根据数据库中的记录向上线的用户发送消息。上线的客户端如果要给某个其它客户端发送消息,则先发送到服务器上,由服务器转发,如果该客户端不在线,则将消息持久化到数据库里。