- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IM即时通讯系统 ——局域网聊天系统;;;产品介绍;开发背景;功能要求;;设计思想;系统功能;系统架构;模块设计;客户端;模块设计;;服务器端;④管理作用之修改昵称:首先判断新的昵称是否在哈希表中存在,若已存在则给出错误提示,否则通过该用户的旧昵称在哈希表中查找到该用户,并用欲修改的昵称替换掉原昵称;接着刷新服务器端的用户列表显示,最后刷新客户端的用户列表显示。
⑤管理作用之断开连接:若要断开某个客户端与服务器的连接,首先向该用户发送被管理员请出系统的信息,然后通过该用户的昵称从哈希表中找到对应socket、service及IP地址等信息,再从每一项信息对应的列表里删除该用户的信息,最后关闭该用户的socket,同时刷新服务器端以及各个客户端的用户列表显示。
⑥在服务其中,需要同时处理多个客户端的请求,因此此处用到了多线程处理机制。在服务器程序里创建单个Server Socket,并调用accept()来等候一个新连接,一旦accept()返回,就取得结果获得的socket,并用它新建一个线程,令其只为那个特定的客户端服务,然后再调用accept(),等候下一次新的连接请求。
;界面设计;功能函数;⑥函数getNickname:该函数实现从socket和IP地址——昵称对照hashtable中得到用户的昵称的功能,函数原型如下:
public static String getNickname(Socket socket,Hashtable ip2nickname)
⑦函数updateOnLineUsersList:该函数实现将在线用户列表的显示清空,并用最新的用户列表更新客户端的用户列表,只显示昵称,函数原型如下:
public static void updateOnLineUsersList(List onLineUsersList,String allNickname)
⑧函数updateOnLineUsersList:该函数实现将在线用户列表的显示清空,并用最新的用户列表更新服务器端的用户列表:显示的是ip:昵称,函数原型如下:
public static void updateOnLineUsersList(List onLineUsersList,Hashtable ip2nickname)
⑨函数getSocketByIP:该函数实现根据用户ip地址得到该用户所在的socket功能,函数原型如下:
public static Socket getSocketByIP(ArrayList onLineUsers,String ip)
⑩函数getServiceByIP,该函数实现根据用户ip地址得到该用户所在的service功能,函数原型如下:
public static Service getServiceByIP(ArrayList allService,String ip)
;信息处理;③若控制字以“FILE:”开始,则表示该用户发出了一个对某一客户端发送文件的请求,此时,服务器端同样通过控制字头后的昵称,查找到对应的接收端用户的信息,并将该用户的IP地址传递给发送端,并在服务器端显示发送端想要对接收端传输文件的信息。
④若控制字以“FILEFINISH:”开始,则表示文件传输完毕,此时服务器端发出文件传输完毕的信息。
⑤若控制字以“FILELENFGTH:”开始,则表示传递的是文件的长度。
⑥若控制字以“VOICE:”开始,则说明是语音聊天的请求。后面的信息解析和文件传输请求是一样的原理。
⑦若控制字以“VOICEEND:”开始,则说明语音聊天结束,此时客户端的语音聊天两个相关的进程结束。
⑧当该用户注销时,服务器端更新在线用户列表以及IP地址—昵称的哈希映照表,并且刷新服务器端同客户端的用户列表显示,同时发出该用户离开的消息。;客户端设计与编码;1、客户端程序;2、界面设计;3 文件发送;4 文件接收;5 消息监听;6语音发送;7 语音接收;;1、客户端登陆;2、服务器实现其管理功能;②强制修改某个客户端的昵称
;3、客户端群聊;4、客户端与客户端间实现“私聊”;5、客户端与客户端之间实现文件传输功能;②件传输完成
;;课程设计结论;课程设计总结与体会;参考文献;
文档评论(0)