当前位置:首页 > 即时通讯毕业设计
洛阳理工学院毕业设计(论文)
将好友的信息发送给每一个好友。
3.3.2 客户端的管理类类的简介 1. ManageClientConServerThread类
功能:这是一个管理客户端和服务器保持通讯的线程类
○1使用HashMap将用户与该用户与服务器通讯的线程进行绑定 ○2addClientConServerThread(String qqId,ClientConServerThread
ccst)
○3ClientConServerThread.
getClientConServerThread(String qqId)通过qqId取得该线程 2. ManageQqFriendList类 功能:管理好友列表的界面类
○1使用HashMap将用户自己与自己的好友列表进行绑定
○2addQqFriendList(String qqid,QqFriendList qqFriendList) ○3QqFriendList getQqFriendList(String qqId)
3. ManageQqChat类
功能:这是一个管理用户聊天界面的类
○1使用HashMap将和每个好友与对应的聊天界面进行绑定 ○2addQqChat(String loginIdAndFriendId,QqChat qqChat) ○3getQqChat(String loginIdAndFriendId)获取聊天界面
4. ManageQqAllChat类
功能:这是一个管理用户群聊天界面的类
3.3.3 辅助类或接口
可序列化类:为了课题的实现方便,数据的传输利用了JAVA语言中特有的一个语言特点——对象的可序列化。利用对象的可序列话,实现了数据在网络中的传输。必须注意一点的是,因为是实现在不同独立计算机上
20
○1使用HashMap将和每个好友与对应的群聊天界面进行绑定
○2addQqAllChat(String loginIdAndFriendId,QqAllChat qqAllChat) ○3getQqAllChat(String loginIdAndFriendId)获取群聊天界面
洛阳理工学院毕业设计(论文)
的数据传输,所以服务器与客户端都有一份可序列化类的包,其序列化编号必须一致,这样在数据传输过程中服务器与客户端才能够认识该序列化的对象,这些序列化对象其实就相当于服务器与客户端之间的一个协议。
可序列化类——传递的信息类:Message类
该类是信息传递包,是普通的信息在服务器与客户端之间传递信息的最基本的可序列化对象,该包是客户端之间聊天信息传输的载体,里面包含了通讯信息的基本内容。
可序列化类——用户信息类:User类
该类是传输用户登录信息的包,其成员变量是登录界面输入的帐号与密码,通过该类的包装传输到服务器,服务器进行验证。其用途在连接服务器是发送。
定义统一的信息类型接口:MessageType接口(为了客户查看的方便) public interface MessageType { }
String message_register_fail = \表明用户注册失败 String message_register = \表明用户注册 String message_succeed = \表明登录成功 String message_login_fail = \表明登录失败 String message_comm_mes = \普通信息包
String message_get_onLineFriend = \要求的在线好友包 String message_ret_onLineFriend = \返回在线好友的包 String message_login = \表明用户登录 String message_chatall_mes = \群聊信息包 String message_file = \文件传输包
String message_live_onLineFriend = \要求的下线好友包
3.4 服务器设计图例
3.4.1 服务器流程图
服务器端流程图简明扼要地展现了服务器端的工作流程,如图3-7所
21
洛阳理工学院毕业设计(论文)
示。
开始启动服务器N输入数据是否为登录NY验证信息Y注册Y是否为注册好友列表N单发消息Y是否为单发信息N群发消息Y是否为群发信息结束
图3-7 服务器流程图
3.5 服务器端功能介绍及实现
服务器起到中转信息,服务器端用于接收客户端发来的各种信息类型(注册信息、登录信息、好友上线信息、好友下线信息、普通聊天信息、
22
洛阳理工学院毕业设计(论文)
文件传输信息以及群内聊天信息),并根据不同的信息类型作相应的信息处理,用户好友管理,用户注册等等核心功能,都要在服务器的正常运行下才能正确的执行这些功能,因此服务器的好坏直接关系到整个局域网聊天系统的好坏,服务器端的设计也相应的成为了本系统的核心设计。其主要功能为:实现连接来自不同端口的socket,并为之提供独立线程,完成信息的转发。
3.5.1 服务器端相关类的简介
1. 服务器相关类的简介——MyQqServer类
功能: qq服务器端在监听、等待某个qq客户端,并进行连接。 ○1验证注册的用户是否存在;
○2验证登录的用户是否存在,若存在登录的用户则启动与该客户端的通信线程。
2. 服务器相关类的简介——ManageClientThread类
功能: 用于绑定管理用户id和服务器与用户通信的线程,用HashMap将用户和与客户端通讯线程进行绑定。关键代码如下:
public static HashMap
static
void
addClientThread(String
uid
,
SerConClientThread ct) { }
3.服务器相关类的简介——SerConClientThread类
功能:服务器和某个客户端的通信线程,对从客户端取得的消息进行判断,然后做相应的处理。
hm.put(uid,ct);
23
共分享92篇相关文档