网络课程设计报告doc

上传人:今*** 文档编号:106215407 上传时间:2019-10-14 格式:DOC 页数:12 大小:120.50KB
返回 下载 相关 举报
网络课程设计报告doc_第1页
第1页 / 共12页
网络课程设计报告doc_第2页
第2页 / 共12页
网络课程设计报告doc_第3页
第3页 / 共12页
网络课程设计报告doc_第4页
第4页 / 共12页
网络课程设计报告doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《网络课程设计报告doc》由会员分享,可在线阅读,更多相关《网络课程设计报告doc(12页珍藏版)》请在金锄头文库上搜索。

1、计算机网络课程设计报告计 算 机 网 络课程设计报告题 目 : 简 易 聊 天 室 姓 名 : 学 号 : 班 级 : 一 问题描述和设计思想(1) 问题描述 在网络越来越便捷的今天,人们对网络的依赖也越来越多,越来越离不开网络,由此而产生的聊天工具也越来越多,其中应用比较广泛的有Netmeeting、MSN-Messager、腾讯QQ,等等。此类软件使得人们运用连上Internet网的电脑用户可以随时跟另外一个在线网民交谈,甚至可以通过视频看到对方的适时图像,互相讨论。使得人们不需要聚集在同一地点,不必担心昂贵的话费而畅快交流,工作、交流两不误。而且好的聊天室还有各种表情符号等可以加强我们的

2、表达。而且费用低廉,信息交流速度快,在这个涌动的社会中加强联系,创造出更多的财富。在此基于Java网络编程的强大功能编写一个简易聊天室系统。 一般来说,聊天工具大多数由客户端程序和服务器端程序组成,本系统采用客户机/服务器架构模式通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天。因此使用Java的异步通信功能,实现网络通信的课程设计。功能要求:1. 有一个聊天服务器,存储帐户信息;2. 用户向服务器发送含有账户名的消息,服务器接受连接后,将账户名及其IP、端口记录下来,并刷新用户的

3、账户列表;3. 服务器监控聊天内容;4. 支持多人聊天,聊天时列出当前所有在线的人员;5. 客户端之间可以单独发送消息;6. 支持图片表情;7. 保存用户聊天信息;(2) 设计思想Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。而且,Java很小,不需要占用多大内存。 因此运用JAVA程序编写聊天室,实现简单聊天功能。本次课程设计做的是Java简单聊天室,它是图形界面、线程、流与文件等技术的综合应用。在Internet上的聊天程序一般都是以服务器提供

4、服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。服务器端工作流程:服务器端通过系统调用创建一个ServerSocket与指定的本地端口绑定,就可以在端口进行侦听。如果有客户端连接请求,则创建一个Socket,将客户端地址赋给这个Socket。然后登录成功的客户就可以在服务器上聊天了。客户端工作流程:客户端程序相对简单,只需要建立一个Socket与服务器端连接,成功后通过这个Socket来发送和接收数据就可以了。Socket程序的工作过程:1. 建立Socket连

5、接:在通信开始之前由通信双方确认身份,建立一条专用的虚拟连接道。2. 数据通信:利用虚拟连接通道传送数据信息进行通信。3. 关闭:通信结束时,再将所建的虚拟连接拆除。二 功能实现和系统结构系统功能如下:服务器:端口设置:设置倾听的端口号,默认为8888。启动服务:开启倾听端口,允许客户端连接。系统消息:服务器启动后可以在聊天室内发送消息。停止服务:关闭倾听端口,中断所有客户端的连接。退 出:关闭服务器。在特定端口上进行侦听,等待客户端连接。用户可以配置服务器端的侦听端口,默认端口为8888。向已经连接到服务器端的用户发送系统消息。统计在线人数。当停止服务时,断开所有的用户连接。系统运行稳定、安

6、全可靠。一台主机只能启动一个服务器。客户端:用户设置:设置聊天时显示的名称,默认为匆匆过客。连接设置:设置要连接的服务器所在主机的IP地址和倾听端口。登 录:连接服务器。发送消息:进行聊天,可单独发送消息给聊天室中的一个人。注 销:与服务器断开连接。退 出:关闭客户端。连接到已经开启聊天服务的服务器端。用户可以配置要连接的服务器端的IP地址和端口号。用户可以配置连接后显示的用户名。用户可以更改聊天时的表情。当服务器端开启后,用户可以随时登录和注销。用户可以向所有人或某一个人发送消息。系统运行稳定、安全可靠。可以默认连接到自己主机启动的服务器。系统结构如图所示:否是服务器serversocket

7、监听建立与客户端连接的套接字1.读客户端信息2.向客户端转发信息关闭服务器客户端socket1.读服务端信息2向服务器写信息关闭客户端启动AppServer.java启动ChatClient.java登录注册是否注册三、采用的主要技术、遇到的难点和解决方法1. 主要技术(1) 操作系统:Windows xp(2) 开发工具:eclipse3.2及其VE插件(3) 开发工具:Eclipse(4) 使用GUI界面设计(5) Java Swing技术2. 遇到的难点和解决难点:表情信息的传送解决:通过对发送消息进行解析,提取出表情图片的信息进行顺序输出。 四、核心代码描述和相关技术说明4.1 界面设

8、计 本程序采用的是Java swing 图形界面开发工具包来设计的,建立一个主类Client.java,然后在其构造方法加载程序所需的组件,设置布局方式(采用的是Boxlayout布局管理器)。 构造方法如下:private void init() box = Box.createVerticalBox(); / 竖结构Box box_1 = Box.createHorizontalBox(); / 横结构Box box_2 = Box.createHorizontalBox(); / 横结构Box box_3 = Box.createHorizontalBox(); / 横结构box.add

9、(box_1);box.add(Box.createVerticalStrut(8); / 两行的间距box.add(box_2);box.add(Box.createVerticalStrut(8); / 两行的间距box.add(box_2);box.add(Box.createVerticalStrut(8); / 两行的间距box.add(box_3);box.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8); / 8个的边距/ 开始将所需组件加入容器box_1.add(new JLabel(字体:); / 加入标签box_1.

10、add(fontName); / 加入组件box_1.add(Box.createHorizontalStrut(8); / 间距box_1.add(new JLabel(样式:);box_1.add(fontStyle);box_1.add(Box.createHorizontalStrut(8);box_1.add(new JLabel(字号:);box_1.add(fontSize);box_1.add(Box.createHorizontalStrut(8);box_1.add(new JLabel(颜色:);box_1.add(fontColor);box_1.add(Box.cre

11、ateHorizontalStrut(8);box_1.add(new JLabel(背景:); 4.2 重点功能模块(1)启动和建立连接/* * 启动服务端 */public void startService()tryserverSocket = new ServerSocket(port,10);messageShow.setCaretPosition(messageShow.getText().length();/获取消息框字符串长度messageShow.replaceSelection(服务端已经启动,在+port+端口侦听.n);/在末尾添加消息startServer.setEn

12、abled(false);startItem.setEnabled(false);portSet.setEnabled(false);portItem.setEnabled(false);stopServer .setEnabled(true);stopItem .setEnabled(true);MessagePane.setEnabled(true);catch (Exception e)System.out.println(e);userLinkList = new UserLinkList();listenThread = new ServerListen(serverSocket,c

13、ombobox,messageShow,showStatus,userLinkList);listenThread.start();/服务端的侦听类启动4.3 客户端聊天模块1.功能设计(1)界面分为3部分:中间部分显示所有聊天信息,最上边部分设置用户名、IP地址和端口号,底部用于文字和表情的输入与发送。2.界面设计图3 聊天窗口(1) 从服务器获取聊天信息的线程,接受服务器发送信息的方法。while (!socket.isClosed() try String type = (String) input.readObject();if (type.equalsIgnoreCase(系统信息)

14、 String sysmsg = (String) input.readObject();String str = sysmsg.split(%);textarea.setCaretPosition(textarea.getDocument().getLength();textarea.replaceSelection(系统信息: );for (int i = 0; i str.length; i+) File file = new File(src/image/% + stri + %.gif);if (file.exists() textarea.setCaretPosition(textarea.getDocument().

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号