一对一聊天实现步骤如下:
1:在FriendList中启动QqChat 线程:
2: 在QqChat 中new Message,将Message中的内容发送给服务器oos。问题来了,那么我怎么样取得客户端的socket呢?把QqClientConServer里面的s做成静态的。那么QqChat 也可以使用了。
3:SerConClientThread,输入流ois接收来自QQChat的Message。
4:接下来用HashMap将QqChat线程发来的SSSS进行标记和管理:关键技术点说明:服务器将每个客户端的线程保存在hashmap中,这样就能实现数据正确转发到对应窗口。客户端这边将连接服务器的线程也保存起来, 同时还要保存线程对应的聊天界面,这样通过读取连接服务器的线程就能正确收到消息,通过线程对应的界面就能将消息正确的显示。
ManageClientThread:用HashMap 管理从客户端QqChat发过来的流s。用用户的ID号,识别对应的流S。
5:MyQqServer接下来完成转发任务:
重要:在服务器(MyQqServer)中做两个事情:1:单开一个线程管理客户端发来的SSSS。2:将用户编号和消息线程添加到管理线程的类中。
6:在SerConClientThread 中获取收消息人,转发给接收方。