ImageVerifierCode 换一换
格式:DOCX , 页数:48 ,大小:95.11KB ,
资源ID:4336249      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4336249.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java聊天室论文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java聊天室论文.docx

1、java聊天室论文摘 要 IAbstr act II前 言 11绪论 21.1 1.1 关于Java聊天室概述 21.1.1选题的依据及其课题的意义 2 1.1.2开发语言的选择 32开发环境简介 32.1 开发工具的选择 42.2关于JDK1.4 42.3 JAVA开发环境的建立 43项目概况 53.1、功能简介 5 3.2、套接字通信 8 4 概要设计 94.1 聊天室服务器端设计。 94.1.1图形界面的设计事件处理 104.1.2 实现服务器消息的收发 104.1.3定义用户的管理 104.1.4设计帮助文档 114.2聊天室客户端设计 114.2.1图形界面以及事件处理 84.22实

2、现消息的收发 8 4.23侦听端口的修改配置4.24设计帮助文档 9 5详细设计 165.11.服务器端的界面设计 165.12实现服务器消息的收发 205.13用户侦听设计 215.14定义用户的管理 225.15设计帮助文档 235.2服务器端的设计 265.21.客户端的界面设计 275.22实现客户端的收发消息 285.33端口的配置 345.44用户名登录的修改 37 5.55帮助文档 39 6. 本章小结 40 参考文献 42结束语 36致 谢 37 摘 要摘 要 本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端和客户端两个部分,服务器端程序主要负责侦听客户端发来的

3、消息,客户端需要登录到服务器端才能实现正常的聊天功能。基于Java的聊天室是利用Eclipse开发包工具进行开发出的一款网络聊天室。这款聊天室是套接字通信开发采用c/s模式的聊天室程序。聊天室共分为服务器端和客户端两个部分,服务器端程序主要负责侦听客户端发来的消息,客户端需要登录到服务器端才能实现正常的聊天功能。本文分为七个部分,第一章详细介绍了J2ME的发展历史以及MIDP程序的基本框架生命周期以及手机多媒体的发展,第二部分介绍了开发工具的选择以及开发环境的搭建,第三到第五部分是系统的设计过程包括需求分析,系统的概要设计和详细设计,第六部分是系统测试与发布。关键词:JAVA聊天室 Abstr

4、actThe development of Handset Video Player is based on the J2ME and uses the Eclipse removable development package tool. This Handset Video Player has used the MIDP2.0 of the J2ME which provides video connection MMAPI (Mobile Media API) that can broadcast and transcribe audio to broadcast video whos

5、e format is mpg, wmv and so on. This article divides into seven parts, the first chapter detailed introduces the development history of J2ME, the MIDP procedure basic bone life cycle and the development of handset multimedia, the second part introduces the choose of development tool and the building

6、 of development environment, from the third part to the fifth part is the design process of system which is include the demand analysis, the system outline design and the detailed design, the sixth part is about test and the issue of the system .Key word: Handset Video Player;J2ME;MIDPprocedure 1.绪论

7、.1.1 关于Java聊天室概述1.1.选题的依据及课题的意义 随着网络信息时代的来临,INTERNET应用越来越广泛,人们越来越习惯于在网上获取和交流信息。据调查显示,80%以上的人上网都会打开聊天工具来聊天,而几乎每一个年轻人都会去聊天。使用网上聊天已经成为现代年轻人一种新的交往方式。 根据网上调查,在所有参加网上聊天的大学生中,进聊天室进行聊天的占69.65%,使用网络寻呼机进行聊天的占37.93%,还有2.75%的受访者声称自己使用其他方式进行聊天。进聊天室聊天是一种较为公共的聊天方式,而使用网络寻呼机则是一种具有排他性的聊天方式,一般能够用网络寻呼机进行联络的,都是比较熟悉的网友。使

8、用网络寻呼机还意味着使用者希望自己的网友随时与自己联系,表现出一种开放性的网上交际观念。聊天室更适合于陌生人之间进行较为主观、感兴化的讨论。所以有大部分的人会进入聊天室聊天,它会给人一个完全自由的聊天世界。 作为一个信息技术专业的学生,经过几年大学知识的系统学习,应该对计算机科学与技术这个名词有了一定的认识。在这几年里,我对本专业学习也有了长足的进步,在毕业即临时,我就选择了自己感兴趣的基于API的聊天室这个课题作为我的毕业设计及论文写作,以检验几年来的学习情况。1.2.开发语言的选择 聊天室的发展呈现万花筒般的发展,开发工具可以是asp,php,cgi,vc+,c,java等等,做出的聊天室

9、各有千秋,本人以java为开发语言,对聊天室进行开发。相信熟悉Java 演进历史的人或多或少都听说过,Java 技术一开始并非就叫做 Java ,而是叫做OAK ,而且最早的时候就是为了嵌入式系统而设计的一项产品。后来因为网际网路的发达,而OAK 的诸多特性刚好又适合用在网路上(例如可移植性、编译后程序码很小),因为商标已被注册的关系,因此 OAK 被改名成Java ,从此因缘际会地成了网路上的闪亮巨星,并随著时间越来越成熟,也慢慢地产生了许多非原本预期中的相关运用。虽然 Java 已经被用到许多企业级软件上,可是其实骨子里面还是非常适合用在嵌入式系统之中。从上图可以看到从Java 1.0 发

10、表之后,Java 就被广泛地使用在桌上型应用程序以及Applet 的开发上,但是,从Java 1.1 开始,Java又回到了它一开始的老路-也就是嵌入式系统方面的应用,在当时Sun Microsystems 发表了Embedded Java 与Personal Java(也有人简称为PJava)这两项规格。其中Embedded Java 是为了资源十分有限,而且没有显示设备的嵌入式装置而设计; Personal Java 则是为了在能够与网际网路连线、并拥有显示系统(例如彩色LCD)的消费性电子装置而设计。接着Java 的版本演进到Java 2 ,这时为了再明显区分各种Java 的应用,所以分

11、割出了J2EE 、J2SE、以及 J2ME 三种版本。所有JAVA版本与其所依据的虚拟器所堆积起来的结构如图1.1所示。图1.1 JAVA各版本结构2开发环境简介2.1 开发工具的选择操作系统:linux开发工具:JDK1.4Eclipse、Eclipseme插件2.2 关于JDK1.4 . JDK是Sun公司分发的免费Java开发工具,Java SDK最早叫Java Software Develop Kit,后来改名为JDK,即Java Develop Kit。JDK作为Java开发工具包,主要用于构建在Java平台上运行的应用程序、Applet 和组件等。 2.3 JAVA开发环境的建立为

12、了能够编写并运行我们所编写的JAVA程序,我们需要在自己的本地机器中安装JDK开发包,JDK是内置各种JAVA开发工具,JAVA虚拟机,JAVA API的一个压缩包。(1)从下载J2SDK,最新的版本是1.4.2_08,下载后的JDK是个执行文件,我们运行后可直接安装,缺省的安装目录是C:j2sdk1.4.2_08。(2)在电脑中配置环境变量,点右键打开我的电脑属性,在高级中有个环境变量,选择新建系统变量:CLASSPATH,变量值:“C:j2sdk1.4.2_07libtools.jar;C:j2sdk1.4.2_07libdt.jar;”,再新建变量名:PATH,变量值:“C:j2sdk1

13、.4.2_07;C:j2sdk1.4.2_07bin;”。具体设置如图2-3所示:图2.1 系统环境变量配置(4)选择一个编译工具。Eclipse是一款非常优秀的开源IDE,非常适合Java开发,由于支持插件技术,受到了越来越多的开发者的欢迎。最新的Eclipse3.1不但界面做了很大的增强,而且增加了代码折叠等众多优秀功能,速度也有明显的提升。配合众多另人眼花缭乱的插件,完全可以满足从企业级Java应用到手机终端Java游戏的开发。本人选择了Eclipse作为这次毕业设计的工具,选择Eclipse作为开发的理由再简单不过了,占用资源少,JBuilder2005和SunONE Studio 8

14、.0 ME建议标准内存1G以上,最低512M,目前国内个人电脑一般都达不到这个配置。同时Eclipse目前基本为国内开发Java程序的标准的IDE,使用Eclipse将使手机程序开发更加简洁。(5)安装Eclipse插件,并进行相应的配置5。 3 .项目概况3.、功能简介 本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端和客户端两个部分,服务器端程序主要负责侦听客户端发来的消息,客户端需要登录到服务器端才能实现正常的聊天功能。 (1)服务器端的主要功能有: a.在特定端口上进行侦听,等待客户端连接。 b.用户可以配置服务器的侦听端口,默认是8889。 c.可以向已经连接的客户端

15、发送体统消息。 d.统计在线人数。 e.停止服务时,断开所有的用户连接。 (2)客户端的主要功能有: a.连接到已经开启聊天服务的服务端。 b.用户可以配置要连接的服务器IP地址和端口号。 c.用户可以配置连接后的用户名。 d.服务器开启时,用户可以随时登录与注消。 c.用户可以想所有的人或者指定的个人发送消息。3.2、套接字通信 套接字通信(socket)是网络的基本通信单元,又称为端口,通常用来实现客户方和服务方的连接。网络上的两个程序通过双向的连接实现数据的交换,实现双方通信前链路的每一端都建立一个socket,通过对socket的读写操作实现网络的通信功能。 socket通信的过程主要

16、有:创建socket,打开连接到socket的输入流和输出流,按照一定的协议对socket进行读写操作,关闭socket这四个步骤,通过这个四个步骤可以完成一般的socket通信。为了完成socket通信,包中提供了socket和serverSocket这两个类,它们分别用来表示双向连接的客户端和服务器断,它们的构造函数有: Socket() 通过系统默认类型的 SocketImpl 创建未连接套接字 Socket(InetAddress address, int port) 创建一个流套接字并将其连接到指定 IP 地址的指定端口号。 Socket(InetAddress address, i

17、nt port, InetAddress localAddr, int localPort) 创建一个套接字并将其连接到指定远程端口上的指定远程地址。 Socket(Proxy proxy) 根据不管其他设置如何都应使用的指定代理类型(如果有),创建一个未连接的套接字。 protected Socket(SocketImpl impl) 创建带有用户指定的 SocketImpl 的未连接 Socket。 Socket(String host, int port) 创建一个流套接字并将其连接到指定主机上的指定端口号。 Socket(String host, int port, InetAddre

18、ss localAddr, int localPort) 创建一个套接字并将其连接到指定远程主机上的指定远程端口。 其中端口号涉及到一个分配的问题,TCP/IP将端口号分成了两个部分,少量的作为保留端口,端口号小于256,以全局方式分配给服务进程。因此每一个标准服务器都拥有一个全局公认的端口,即使在不同的机器上其端口号也是不同的。对于常见的端口 号主要有:80端口提供www服务,23提供ftp服务,110提供pop服务。剩余的为自由端口, 4.概要设计服务器端的程序客户端的程序端口号:8889IP:192.168.5.72设置IP与端口号IP:192.168.5.72端口号:8889建立连接

19、本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端和客户端两个部分,服务器端程序主要负责侦听客户端发来的消息,客户端需要登录到服务器端才能实现正常的聊天功能。 4.1、聊天室服务器端设计。(1)图形界面的设计事件处理。 调用java.swing和java.awt包进行图形界面处理和java.swing.event与java.awt.event事件的侦听处理。(2)实现服务器消息的收发。 分别定义向所有用户或某一个用户发送消息的方法。(3)定义用户的管理 定义添加用户,删除用户,返回用户数目,根据用户名查找用户,根据索引查找用户。(4)设计帮助文档 单击帮助按钮,弹出一对话框显示本

20、系统的有关信息.4.2聊天室客户端设计(1)图形界面以及事件处理 调用java.swing和java.awt包进行图形界面处理和java.swing.event与java.awt.event事件的侦听处理。(2)实现消息的收发 分别定义向所有用户或某一个用户发送消息的方法。(3)侦听端口的修改配置 用户对所要连接的服务器IP及侦听端口进行修改配置(4)设计帮助文档 单击帮助按钮,弹出一对话框显示本系统的有关信息.为用户提供信息帮助。 5详细设计 5.1服务器端的设计 5.11.服务器端的界面设计 界面设计在应用程序很重要。造就一款成功的聊天室软件,抛开其他各种因素不谈,主菜单的设计非常重要,其

21、关键是可用性。 界面的可用性是指高效、易用、易学、易记。如果用户界面不友好,即使用户对其感兴趣,由于菜单的原因使缺乏人性化设置,用户也不会再使用这个软件。一个友好的界面是非常关键的,界面设计必须在软件设计时就进行事件添加和事件侦听和事件处理。调用serverlisten()来实现服务端用户上线和下线的侦听,调用serverReceive()来实现服务器的消息收发。 服务器端的界面如下: 图1 服务器端界面效果 服务器界面代码实现如下: public class ChatClient extends JFrame implements ActionListener String ip = 192

22、.168.5.72;/连接到服务端的ip地址 int port = 8888;/连接到服务端的端口号 String userName = 梅山古道;/用户名 int type = 0;/0表示未连接,1表示已连接 Image icon;/程序图标 JComboBox combobox;/选择发送消息的接受者 JTextArea messageShow;/客户端的信息显示 JScrollPane messageScrollPane;/信息显示的滚动条 JLabel express,sendToLabel,messageLabel ; JTextField clientMessage;/客户端消息

23、的发送 JCheckBox checkbox;/悄悄话 JComboBox actionlist;/表情选择 JButton clientMessageButton;/发送消息 JTextField showStatus;/显示用户连接状态 Socket socket; ObjectOutputStream output;/网络套接字输出流 ObjectInputStream input;/网络套接字输入流 ClientReceive recvThread; /建立菜单栏 JMenuBar jMenuBar = new JMenuBar(); /建立菜单组 JMenu operateMenu

24、= new JMenu (操作(O); /建立菜单项 JMenuItem loginItem = new JMenuItem (用户登录(I); JMenuItem logoffItem = new JMenuItem (用户注销(L); JMenuItem exitItem=new JMenuItem (退出(X); JMenu conMenu=new JMenu (设置(C); JMenuItem userItem=new JMenuItem (用户设置(U); JMenuItem connectItem=new JMenuItem (连接设置(C); JMenu helpMenu=new

25、 JMenu (帮助(H); JMenuItem helpItem=new JMenuItem (帮助(H); /建立工具栏 JToolBar toolBar = new JToolBar(); /建立工具栏中的按钮组件 JButton loginButton;/用户登录 JButton logoffButton;/用户注销 JButton userButton;/用户信息的设置 JButton connectButton;/连接设置 JButton exitButton;/退出按钮 /框架的大小 Dimension faceSize = new Dimension(400, 600); JP

26、anel downPanel ; GridBagLayout girdBag; GridBagConstraints girdBagCon; public ChatClient() init();/初始化程序 /添加框架的关闭事件处理 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); /设置框架的大小 this.setSize(faceSize); /设置运行时窗口的位置 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); thi

27、s.setLocation( (int) (screenSize.width - faceSize.getWidth() / 2, (int) (screenSize.height - faceSize.getHeight() / 2); this.setResizable(true); this.setTitle(聊天室客户端); /设置标题 /程序图标/ icon = getImage(/home/asd0709/lijie/jsp/liaotianshi/src/ChatServer/lily.gif);/ this.setIconImage(icon); /设置程序图标 show();

28、 /为操作菜单栏设置热键V operateMenu.setMnemonic(O); /为用户登录设置快捷键为ctrl+i loginItem.setMnemonic (I); loginItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_I,InputEvent.CTRL_MASK); /为用户注销快捷键为ctrl+l logoffItem.setMnemonic (L); logoffItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_L,InputEvent.CTRL

29、_MASK); /为退出快捷键为ctrl+x exitItem.setMnemonic (X); exitItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_X,InputEvent.CTRL_MASK); /为设置菜单栏设置热键C conMenu.setMnemonic(C); /为用户设置设置快捷键为ctrl+u userItem.setMnemonic (U); userItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_U,InputEvent.CTRL_MASK

30、); /为连接设置设置快捷键为ctrl+c connectItem.setMnemonic (C); connectItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_C,InputEvent.CTRL_MASK); /为帮助菜单栏设置热键H helpMenu.setMnemonic(H); /为帮助设置快捷键为ctrl+p helpItem.setMnemonic (H); helpItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_H,InputEvent.CTRL_MASK); /* * 程序初始化函数 */ public void init() Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout(); /添加菜单栏 operateMenu.add (loginItem); operateMenu.a

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1