计算机网络课程设计大作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

研究生课程《计算机网络》

课程设计论文

题目:利用Java语言的Socket编程实现网络环境下两

台计算机之间的字符聊天功能

学院:信息工程与自动化学院

专业:电子与通信工程

年级:2013级

学号:

姓名:

分数

1设计项目分析

1.1需求分析

1.1.1性能需求

利用Java 语言的Socket编程实现网络环境下两台计算机之间的字符聊天功能。一个QQ系统由一个服务器和若干个客户端组成。服务器和叫客户端之间通过TCP/IP网络协议通信。客户端的为用户服务的。客户端的功能:一是用户通过登入界面启动与服务器的连接,并发送用户的基本信息给服务器;二是客户端界面可以收到好友发送的信息,也能给好友发送信息。服务器为客户端服务的。服务器提供的功能是:一是等待客户端的连接,客户端连接上,保存客户端信息,并发信息告诉其它在线客户XX已经上线;二是起消息的转发作用,所有的客户聊天信息都有服务器来转发。

1.1.2环境需求

运行环境:Windows xp、eclipse

必要环境:JDK 1.5 以上

1.2实现目标

(1)登录界面,好友列表界面,聊天界面。

(2)当用户点击登录后,把QQ号码和密码发送给QqServer去验证,如果该用户合法,则返回ok,反之返回Err。

(3)完成多个好友互相聊天功能。

(4)如果好友在线,则显示彩色头像,反之,显示灰色头像。

(5)当好友上线后,提示。

(6)把接收到的消息,显示到该显示聊天界面。

(7)当一个用户上线是能看到所有的在线好友,用户可以群聊也可以选择某个人单独聊天。

2 系统设计

2.1模型分析

客户端:建立与服务器的连接并登陆,能显示登陆错误信息,完成界面登录。

并在每次用户接收到聊天信息后将会开始分析聊天信息,然后将适合自己的信息人性化地显示在与好友聊天界面上。

服务器:检查登陆信息是否正确,并向客户端返回登陆信息。如信息正确,就将用户发送给该用户。可以将聊天信息,转发给消息指定的客户端。

整体模型如图1所示。

图1整体通信模型

2.2流程分析

(1)服务器端:运行服务器程序

(2)客户端:

①进入登陆界面,输入QQ 号码和密码,点登录按扭。

②进入好友列表。

③双击要聊天的好友,进入聊天界面。

2.3设计分析

MyServerFrame.java 功能:服务器端的控制界面,可以完成启动服务器,关闭服务器可以管理和监控用户。

SerConClientThread.java 功能:是服务器和某个客户端的通信线程。

MyQqServer.java 功能:qq 服务器,它在监听,等待某个qq 客户端,来连接。 QqFriendList.java 功能:我的好友列表(也包括陌生人,黑名单)。

QqClientLogin.java 功能:qq 客户端登录界面。

QqChat.java 功能:与好友聊天的界面

ClientConServerThread.java 功能:客户端和服务器端保持通讯的线程. QqClientConServer.java 功能:客户端连接服务器的后台

2.4结果分析

1、运行MyServerFrame.java 启动服务器,如图2所示。

信息 信息 验证/中转

图2 启动服务器界面

2、运行QqClientLogin.java qq客户端登录界面

图3 客户端登录界面

3、在登录界面中输入QQ号码和密码,点击登录进入好友列表。

图4 好友列表图5 陌生人列表图6 2号用户列表

此例中QQ号码是1~50中的任一数字,密码是123456,输入号码1,登录后如图4所示。点击陌生人列表如图5所示,登录2号用户,刚1、2在线用彩色头像显示,不在线好友用灰色头像显示,如图6所示。

5、当用户5登录时,在用户1、2列表中同时更新在线用户,如图7所示。

图7 用户好友更新列表

6、通信界面

打开两个用户聊天窗口,在信息输入框中输入聊天内容,点击发送按钮,即可实现客户端的通信,通信情况如图8所示

图8 单用户通信界面

该QQ系统也可以实现多用户之间的通信,如图9所示。

图9 多用户通信界面

3总结

3.1总结

该项目没有使用到数据库,实现了登录,与好友聊天等的qq简易功能,基本满足了结构化、界面友好、速度快、安全性以及稳定性等特点。但功能还行欠缺,比如:在线添加用户、离线留言、在线传递文件、视频聊天、语音聊天等,都不能实现,同时界面也不够美观,希望能进一步完善。

3.2收获和体会

本文设计的聊天系统,功能比较单一,需要进一步改进,在设计的过程中,加深了我对网络层的架构和实现方式的了解,让我对计算机网络的Socket编程进行了深入的学习,清楚了客户端与服务器在java编程中的流程,学习到不少知识。通过这次大作业设计,自己在理论研究和实际工作能力等方面都得到了提高,受益匪浅,这些无疑会给我今后的工作和学习带来很大的帮助。

相关文档
最新文档