我写的聊天程序“客户端”启动后会开启一个线程(只有一个)来监听是否有好友发来消息,有的话直接显示到打开着的相应的聊天窗口上。    现在问题是:    如果我没有打开聊天窗口,这时候别人给我发来消息就没有相应的窗口来显示这些信息,所以必须先保着,然后提示我消息来了,等我打开窗口后再显示出来,但是这些消息该怎样保存呢?同时又怎样能让我一打开对话窗口就显示出来呢?     ps:因为只有一个线程来监听消息,所以收到的信息要么马上发出去,要么先保存起来,不然会让这个线程阻塞,进而影响其它消息的接收。    请问大家有思路吗?帮帮忙,先谢谢大家了!

解决方案 »

  1.   

    QQ聊天是以个服务端,多个客户端,客户端与客户端之间可以发送消息。如果客户端没开启,把发送的消息保存到服务端。当对方登陆的时候需要和服务端建立联系,这时候可以把服务端缓存的消息发送给客户端。
      

  2.   

    你只有一个聊天窗口?
    QQ是基于连接的消息收发机制。就是根据跟你收发消息的联系人不同,通过不同的窗口显示消息的。
    你可以让监听消息的线程收到消息的同时保存联系人,将收信和联系人一一对应地放到本地聊天记录中。
    然后在打开对应的联系人的聊天窗口的时候导入聊天记录。