要点整理
1、主要界面:登录界面、好友列表界面、聊天界面
2、用户登录功能:当用户点击登录后,把qq号码和密码发生给QQServer去验证,如果该用户合法,返回OK,不合法返回err
3、在网络间传递对象:对象流
4、对message规定一些规则:
mesType1->登录成功
mesType2->登录失败
mesType3->普通消息包
mesType4->要求在线好友的包
mesType5->返回在线好友的包
5、服务器端
①服务器端的控制界面,可以启动,关闭服务器,监听用户,发生阻塞就等待,然后接收客户端发来的信息。
②用while(true)循环监听,如果失败关闭连接,重来。
③如果客户端2不在线,那么客户端1发送的信息就会给服务器,数据库连接服务器保存。
④服务器为了可以完成信息转发
1、把服务器得到的每个socket保存在hashmap里面,用客户端的id标识该socket
2、当服务器和某个客户端形成一个连接时,服务器就单开一个线程,让这个线程与该客户端通信
3、客户端读取信息,读不到就等待
4、多人聊天时,不能将socket设为静态。而是在客户端和服务器端建立线程,然后用hashmap管理线程,管理用户聊天界面,管理好友名单界面类,让服务器知道客户端的情况,根据客户端的情况即发送的mes类型,服务器返回相应的信息。
6、对头像的处理:上线是彩色,下线是灰色
当一个用户登录成功后,就向服务器发送一个要求返回在线好友的包,服务器就回送一个在线好友的信息包,客户端收到这个包之后再处理。
7、如何让在前面登录的人,知道后面登录人的情况?
让每一个人登录成功后,就通知其他在线的人。