基于JAVA的聊天系统的设计与实现_第1页
基于JAVA的聊天系统的设计与实现_第2页
基于JAVA的聊天系统的设计与实现_第3页
基于JAVA的聊天系统的设计与实现_第4页
基于JAVA的聊天系统的设计与实现_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业综合训练课题名称 基于Java的聊天系统设计及实现 系 别 计算机技术与工程 专 业 计算机网络技术 班 级 09计网(1)班 姓 名 张超 学号 指导老师 魏 涛 江西蓝天学院一、实习目的通过本次实习,能对公司产品、产品流程等达到熟练运用的地步,同时应该对JAVA及其应用有一个非常清晰、明了的认识。本次的实习内容主要包括:对公司产品有一个初步的认识及确定其应该包括哪些模块实现什么功能;对JAVA的基础知识和理论学习;理论联系实际对JAVA Eclipse进行具体操作;学会用JAVA进行设计,JAVA初步程序设计。二、实习时间2011年11月28日至2012年2月10日三、实习地点南昌轩逸

2、文化传播有限公司 四、公司简介及工作内容南昌轩逸文化传播有限公司,是由数名南昌高校大学生自主创业而建立起来的广告公司,公司宗旨:企业宣传的荧屏,学生发展的平台。公司主要从事校园一系列广告业务,拥有南昌众多高校的校园广告资源,是一家由江西省市政府、高校与社会共同扶持起来的大学生实体企业。刚来到轩逸文化传播有限公司,每个人彼此都不熟悉。和我相似,很多刚来的实习生不知道该干什么。公司为了让我们有一个交流的平台,促进新、老同事间的相互沟通,决定开发一个聊天系统,便于同事间的日常工作交流。开发的聊天系统我们决定采用Java语言。由于本人在大学期间学习过Java程序的应用开发,所以被选入该系统的开发项目组

3、。五、实习内容(一)基于Java的聊天系统的分析1、需求分析聊天系统不外乎两个方面,服务器端和客户端。首先,服务器端的任务:(1)服务器端应当建立一个ServerSocket,并且不断进行侦听是否有客户端连接或者断开连接(包括判断没有响应的连接超时)。(2)服务器端应当是一个信息发送中心,所有客户端的信息都传到服务器端,由服务器端根据要求分发信息。客户端应该完成的工作包括:(1)与服务器端建立通信通道,向服务器端发送信息。(2)接收来自服务器的信息。2、分析小结相对服务器而言,客户端的任务更加简单。通过以上的简单分析可知,解决上述四个问题,即完成了该聊天系统的核心。(二)开发环境工具基于JAV

4、A聊天系统的设计主要运用JAVA与语言与Socket类结合而开发。其开发的主要环境包括:服务器端:(Windows平台)首先应有java环境jdk,建议采用jdk1.5以上,另外还需配置classpath环境变量,添加Hibernate运行所需要的jar包,本系统开发工具为MyEclipse5.5;客户端:只要有java环境jdk就可以,建议jdk1.6。(三)基于Java聊天系统的设计与实现1、聊天系统总体设计要点聊天系统的设计跟普通网站设计有着许多不同之处。普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。在设计聊

5、天系统的过程中,必须要考虑以下几个设计要点:(1)实现思想在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。(2)服务器端工作流程服务器端通过socket()系统调用创建一个Socket数组后(即设定了接受连接客户的最大数目),与指定的本地端口绑定bind(),就可以在端口进行侦听listen()。如果有客户端连接请求,则在数组中选择一个空Socket,将客户端地址赋给这个Socket。然后登录成功的客户就可以在服

6、务器上聊天了。(3)客户端工作流程客户端程序相对简单,只需要建立一个Socket与服务器端连接,成功后通过这个Socket来发送和接收数据就可以了。2、功能模块划分聊天系统工作原理图如图1所示。图1 聊天系统工作原理图3、聊天系统各功能模块(1)服务器程序模块服务器与客户间通过套接口Socket(TCP)连接。在java中使用套接口相当简单,Java API为处理套接口的通信提供了一个类.Socket,使得编写网络应用程序相对容易。服务器采用多线程以满足多用户的请求,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认端口为9527,然后无限循环调用accept()方法接受

7、客户程序的连接。服务器程序启动结果如图5-2所示。图2 聊天服务器的实现图服务器端程序的代码如下:import java.awt.*;import java.awt.event.*;import java.io.*;import .*;import java.util.*;import javax.swing.*;import java.util.*;/*聊天系统服务器程序聊天系统服务器注册窗口如图3所示:图3 聊天服务器注册窗口服务器注册功能代码如下:/封装登录信息class Customer implements SerializableString custName;String cus

8、tPassword;/封装注册信息class Register_Customer extends Object implements java.io.Serializable String custName; String custPassword; String age; String sex; String email;/用于发送聊天和在线用户的信息 class Message implements Serializable Vector userOnLine; Vector chat;/聊天信息序列化class Chat implements SerializableString cha

9、tUser;String chatMessage;String chatToUser;boolean whisper; /退出信息序列化class Exit1 implements Serializable String exitname;(2)客户端程序模块客户端通过Socket(InetAddress,port)建立与服务器的连接。服务器与客户都通过构造ObjectInputStream,ObjectOutputStream来建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器accept()方法返回一个新建的Socket对象。客户端然后向服务器发送消息

10、,比如文件传输等,服务器收到来自客户的请求后,针对不同的消息处理请求。客户端程序实现结果如图4所示。图4 客户端程序实现图客户端程序的Socket工作过程如下:a、建立Socket连接:在通信开始之前由通信双方确认身份,建立一条专用的虚拟连接通道。b、数据通信:利用虚拟连接通道传送数据信息进行通道。c、关闭:通信结束时,再将所建的虚拟连接拆除。1服务器socket2监听4接收5读6写7关闭3客户端etsocket6 写5 读7关闭其工作过程图如图5所示。图5 Socket的工作过程图客户端程序的主要代码如下:import javax.swing.*;import java.awt.*;impo

11、rt java.awt.event.*;import .*;import java.io.*;import java.util.*;import java.applet.*;/*聊天系统客户端程序/设置服务器IP地址/public class ChatClient public ChatClient() public static void main(String args)new Login();/登录信息序列化class Customer extends Object implements java.io.Serializable String custName; String custP

12、assword;/注册信息序列化class Register_Customer extends Object implements java.io.Serializable String custName; String custPassword; String age; String sex; String email;/用于发送聊天和在线用户的信息 class Message implements Serializable Vector userOnLine; Vector chat;/聊天信息序列化class Chat implements SerializableString chat

13、User;String chatMessage;String chatToUser;boolean whisper; /退出信息序列化class Exit implements Serializable String exitname;六、实习总结本次实习中,通过java语言实现了简单的实时聊天功能,经过细心的调试和排错解决了绝大部分的问题。鉴于初次涉及采用语言编写聊天系统,在开始阶段感觉逻辑复杂,难以控制,目前仍有一些未能解决的缺陷。通过本次实习,我学到了许多东西,也看到了自己本身存在着许多问题。当前的软件的功能日趋复杂,不学到一定的深度和广度是难以在实际工作中应付自如的。这也反映出我在学校中所学的知识存在理论与实践脱离的情况。需再加强学习,开拓视野,增强实践操作技能,为以后的工作而努力。在此次实习中,最感谢实习单位和指导老师给予我在工作和学习上帮助!使我提前感受到以后的工作内容和工作方法。通过这几个月的实习,让自己的知识更加的充分和扎实,对以后有了良好的规划。在实习期间,我学会了很多有用东西,看到了自己的缺点与发展方向,磨练了自己的心性,让自己能够在社会的困难路程中越挫越勇、再接再厉。通过实习也让我学会了如何设计一个良好的用户界面,掌握了一些设计用户界面所要注意的要点

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论