Java局域网聊天程序课程设计论文(含代码)
基于JAVA局域网聊天程序设计与实现(附源代码)

局域网聊天课程设计摘要随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。
目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。
即时通讯软件,是每一个上网用户都需要的工具,它除了能够让您迅速地在网上找到自己的朋友和伙伴之外,还可以实时交谈和传递信息,截止到目前,全球约有近3亿多人使用即时软件,正因为即时通讯软件拥有数以亿计的用户和增长的市场,所以各个公司都盯上了这个最大的市场,一时间,即时通讯市场硝烟四起。
对等网络(peer-to-peer,简称P2P),应用最初出现时和现在并不相同。
事实上可以认为它是若干不同技术以及流行趋势相结合的产物。
以下是导致P2P技术发展最重要的趋势:首先,一些新技术与软件工程的结合,形成了一种将工作分散的趋势。
P2P计算正是这种分散工作趋势的结果。
其次,在企业应用集成等因素的驱动下,过去十年渐渐形成从集中的单机系统转向分布式系统。
然而随着互联网的发展,全面的分布式计算也就成为一种迫切需求。
关键词:局域网聊天 P2P javaAbstractWith the development of the Internet,the chat tool as a communication tool, has been popularly accepted by netizens of all ages. At present, there are many powerful chat tools, of which Tencent QQ, MSN-Messager are much more prevalent.Instant messaging software is necessary for every one who connects to the internet, which can not only provide you a prompt way to find friends and partners online, but can provide you the convenience of internet relay chat and information delivering. Up to now, there are about 300 million people using real-time software all over the world. As more and more corporations have focused on this market with growing potential, which has hundreds of millions of uses, the competitions among these corporations are extremely fierce.The initial application of peer-to-peer network (peer-to-peer, referred to as P2P) is not the same as it is now. In fact, it can be regarded as a combination of different technologies and fashion trends. Below are the most important trends that have led the development of P2P technology: First of all, the integration of software engineering and new technologies led to a working dispersion trend. As a result, P2P computing was born. Then, in the past decade, it has turned fro m a single centralized system to distributed system due to the motivation of factors such as enterprise application integration. At last, with the development of the Internet, however, a comprehensive distributed computing has become an urgent need.Keywords:LAN chat P2P java局域网聊天课程设计目录摘要 (i)Abstract ..................................................................................................................................... i i 1绪论 . (1)1.1JAVA的网络功能与编程 (1)1.1.1JAVA概述 (1)1.1.2 JAVA的特点 (3)1.1.3 JAVA语言在网络上的应用 (5)1.2J AVA B EANS技术 (6)1.3IP/TCP协议常识 (6)1.4S OCKET的简介 (7)1.5对等网络 (8)1.5.1 对等网络发展历史 (8)1.5.2 对等网络的概念 (9)1.5.3 对等网络的主要系统结构 (9)2 JAVAqq局域网聊天程序的需求分析 (13)2.1课题来源 (13)2.2需求分析 (13)3 JAVAqq局域网聊天程序的系统分析与设计 (15)3.1JAVA QQ局域网聊天程序的总体设计要点 (15)3.2JAVA QQ局域网聊天程序的设计步骤及功能模块划分 (15)3.3JAVA QQ局域网聊天程序各功能模块 (16)4 JAVAqq局域网聊天程序的设计与实现 (24)4.1开发环境工具 (24)4.2硬件环境 (24)4.3聊天系统功能模块的测试 (24)结论 (27)致谢 (29)参考文献 (30)附录 A 程序源代码 (31)1绪论随着互联网逐步普及,互联网技术的逐步提高。
局域网聊天室 JAVA课程设计

《面向对象程序设计》课程设计报告题目:局域网聊天室程序设计院(系):信息科学与工程学院专业班级:计算机科学与技术1201班学生姓名:程伟学号:20121183011指导教师:吴奕2014年12月29日至2015年1月9日华中科技大学武昌分校制面向对象程序设计课程设计任务书一、设计(调查报告/论文)题目局域网聊天室程序设计二、设计(调查报告/论文)主要内容内容:用来提供局域网中用户之间的交互通讯,使用Eclipse与JDK1.6工具,操作系统为WINDOWS,采用面向对象方法完成,包括总体设计、详细设计、编码实现、测试。
运用套接字Socket连接技术,实现客户端的套接字对象和服务器端的套接字对象之间的输入输出流的连接,达到数据报通信的目的基本功能与要求:实现聊天室服务器端的要求:①设计实现在特定端口上进行侦听,等待客户端的连接。
②用户确定服务器的侦听端口。
③系统能向已经连接到服务器端的用户发送系统消息。
④系统能统计在线人数。
⑤当系统停止服务时,设计程序应能断开所有的用户连接。
实现聊天室客户端的要求:①系统能连接已经开启聊天服务的服务端。
②用户确定要连接服务器端的IP地址与端口号,连接后系统应能提供显示的用户名。
③当服务器端开启的话,实现用户的登录与注销。
④用户可以通过设计的系统向所有人或者某一个人发送消息。
三、原始资料1.《面向对象程序设计课程设计》指导书2.耿祥义.JAVA大学实用教程.北京:清华大学出版社,2009.四、要求的设计(调查/论文)成果1.课程设计报告2.课程设计软件五、进程安排布置任务,查找资料、需求分析1天总体设计1天详细设计1.5天编制源程序实现3.5天测试与修改1天撰写课设报告2天六、主要参考资料[1]张广彬.Java课程设计案例精编(第二版).北京:清华大学出版社,2011.[2]耿祥义.Java课程设计(第二版).北京:清华大学出版社,2008.[3]耿祥义.JAVA大学实用教程.北京:清华大学出版社,2009.[4]邹林达.陈国君Java2程序设计基础.北京:清华大学出版社,2010.[5]邹林达.Java2程序设计基础实验指导.北京:清华大学,2010.指导教师(签名):20年月日目录1需求与总体设计 (1)1.1需求与系统功能图 (1)1.2系统类图 (2)1.2.1服务端系统 (2)1.2.2客户端服务系统 (3)2详细设计 (4)2.1聊天室服务器端的设计 (4)2.1.1ChatServer类 (4)2.1.2ServerListen类 (5)2.1.3ServerReceive类 (5)2.1.4PortConf类 (6)2.1.5Help类 (6)2.1.6UserLinkList类 (7)2.1.7Node类 (7)2.2聊天室客户端设计 (8)2.2.1ChatClient类 (8)2.2.2ConnectConf类 (9)2.2.3UserConf类 (9)2.2.4Help类 (10)2.2.5ClientReceive类 (10)3编码实现 (11)3.1服务器编码实现 (11)3.1.1ChatServer类 (11)3.1.2ServerListen类 (21)3.1.3ServerReceive类 (23)3.1.4PortConf类 (27)3.1.5UserLinkList类 (30)3.1.6Node类 (31)3.1.7Help类 (32)3.2客户端编码实现 (34)3.2.1ChatClient类 (34)3.2.2ClientReceive类 (46)3.2.3ConnectConf类 (48)3.2.4UserConf类 (51)3.2.5Hlep类 (54)4系统测试 (56)总结 (57)1需求与总体设计1.1需求与系统功能图本系统所要实现的主要功能是为广大用户提供一个借助网络进行人际交往的平台。
JAVA 局域网聊天软件毕业设计

局域网实时通讯系统设计学生:陈曲指导教师:罗万可内容提要近年来,Java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用,特别是Java与WWW的完美结合,使其成为网络编程和嵌入式编程领域的首选编程语言。
Eclipse是用于快速开发Java应用的一款优秀的集成开发环境,它以其友好的开发界面、强大的组件支持等优点,得到广大程序员的接受和认可。
本文在介绍Java和Eclipse相关技术和国内外发展现状的基础上,对“局域网实时通讯”系统的整个生命周期的各个开发阶段进行了详细地介绍。
首先,分析了开发本系统的可行性,重点分析本设计所采用的技术的可行性。
其次,从系统主界面、信息传送、文件传送以及语音、视频、JMF多媒体功能等几方面,分析了本系统的功能需求;从可使用性和安全性方面分析了属性需求。
然后,进行了系统的概要设计和详细设计,这也是本文的重点。
详细设计介绍了Java2标准运行环境的配置,重点给出各个类模块的程序流程图以及UML图,列表介绍了各个类包含的变量、使用的方法,展示了系统的界面。
为了保证程序代码的正确性和功能实现的可靠性,本文还介绍了软件的程序调试和功能测试结果,并且对本设计的成果和不足进行了总结。
最后,本文还提出软件的维护措施。
关键词:Java Eclipse通讯传输多媒体LAN real-time communicationSummary: In recent years, Java as a new programming language for its simplicity, portability and platform independence, etc., has been widely used, especially in the perfect combination of Java and the WWW, making it a network programming and embedded programming, the preferred programming language. Eclipse is used for rapid development of Java applications, an excellent integrated development environment, it is the development of its friendly interface, powerful component support, etc., to be accepted and recognized by the general programmer.This paper introduces the Java and Eclipse-related technologies and the development of the status quo at home and abroad, based on the "LAN real-time communication" system throughout the life cycle of all phases of development carried out a detailed introduction. First, the analysis of the feasibility of developing the system, focusing on analysis of the technology used in this design is feasible. Secondly, from the system main interface, messaging, file transfer, as well as voice, video, JMF several aspects such as multimedia features, analysis of the system's functional requirements; from usability and security requirements in terms of analysis of properties. Then, a systematic summary of the design and detailed design, which is the focus of this article. Detailed design describes the standard Java2 runtime environment configuration, with emphasis given in each class module of the program flow chart and UML diagrams, the list describes the variables included in each class, the methods used to demonstrate the system interface. In order to ensure the correctness of program code to achieve the reliability and functionality, this paper also describes the game software debugging and functional test results, and the results of this design and shortcomings are summarized. Finally, this paper also proposed measures for software maintenance.Keywords: Java Eclipse Communications Transmission Media目录一、绪论 (1)(一)本设计的目的和意义 (1)(二)国内外研究现状 (1)(三)设计研究的主要内容、目标与工具 (2)1.设计的主要内容 (2)2.设计要达到的目标 (2)3.设计方法介绍 (3)二.可行性分析 (5)(一)可行性分析 (5)(二)可行性研究的前提 (6)1.要求 (6)2.目标 (6)3.条件、假定和限制 (6)4.对现有软件的分析 (7)(三)所建议的软件 (7)1.系统处理流程 (7)2.社会可行性分析 (7)3.技术可行性分析 (8)4. 经济可行性 (10)三、需求分析 (10)(一)任务概述 (10)1.目标 (10)2.用户的特点 (11)(二)具体需求 (11)1.功能需求 (11)2.主界面需求 (11)四、概要设计 (11)(一)系统功能 (11)(二)功能模块设计 (12)1.总设计模块的划分 (12)2.系统主界面模块 (12)(三)类模块设计 (13)(四)程序设计的重点 (13)(五)接口设计 (13)1.外部接口 (13)2.内部接口 (13)(六)故障处理 (14)五、详细设计 (14)(一)程序主结构 (15)(二)开发环境配置 (15)1.Java2的标准运行环境 (15)(1)J2SE SDK (15)(2)J2SE JRE (15)(3)J2SE Documentation (16)2.J2SE的安装与配置 (16)(1)安装过程 (16)(2)配置环境变量 (18)3.JMF安装 (22)(三)功能模块程序流程图 (22)(1)基本信息传送 (22)(2)文件传送 (22)(3)语音视频 (23)(4)远程协助 (23)(5)视频会议 (24)(四)系统界面展示 (24)六、软件测试 (27)(一)程序代码调试 (27)1.用正常数据调试 (27)2.异常数据调试 (27)3.用错误数据调试 (28)(二)程序功能测试 (28)1.模块功能测试 (28)2.确认测试 (28)七、软件维护 (29)结论 (29)参考文献 (31)局域网实时通讯系统一、绪论(一)本设计的目的和意义“局域网通信”具有广泛的用户群,在没有Internet接入到局域网时候,我们的通信主要靠局域网通信,但是先阶段有关局域网通信系统很少,对每一个Java语言设计者进行语言提高和进阶都是一个很好的锻炼机会。
Java局域网聊天程序课程设计(含代码)

JAVA聊天室的系统的设计与开发1.主要内容:用JA V A实现基于C/S模式的聊天室系统。
聊天室分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。
2.具体要求(包括技术要求等):系统的功能要求:A.服务器端主要功能如下:1.在特定端口上进行侦听,等待客户端连接。
2.用户可以配置服务器端的侦听端口,默认端口为8888。
3.向已经连接到服务器端的用户发送系统消息。
4.统计在线人数。
5.当停止服务时,断开所有的用户连接。
B.客户端的主要功能如下:1.连接到已经开启聊天服务的服务器端。
2.用户可以配置要连接的服务器端的IP地址和端口号。
3.用户可以配置连接后显示的用户名。
4.当服务器端开启的话,用户可以随时登录和注销。
5.用户可以向所有人或某一个人发送消息。
学习并掌握一下技术:Java JavaBean 等熟练使用一下开发工具:Eclipse,JCreator 等实现系统上诉的功能。
3.进度安排:12月28日~ 12月29日:课程设计选题,查找参考资料12月30日~ 1月1日:完成系统设计1月2日~ 1月5日:完成程序代码的编写1月6日:系统测试与完善1月7日:完成课程设计报告,准备答辩4.主要参考文献:[1].张广彬孟红蕊张永宝.Java课程设计(案例精编)[M].清华大学出版社.2007年版摘要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。
基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。
一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Soket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。
java课程设计制作简单的Socket聊天局域网

2.2 系统整体框架Байду номын сангаас
根据系统软件的功能要求,画出的系统框架图为三组:分别是聊天软件总体图和设 置图及个人资料设置图。 学生局域网聊天软件总体包括在线、返回、断线、设置、关于这个软件、退出等六 项: (如图 1 所示)
沈 阳 大 学
课程设计说明书用纸
NO2
图 1 局域网聊天软件总体框架图
设置包括留言时间、每次启动时出现及发送后最小窗口: (如图 2 所示)
用户的个人参数设置代码如下: :
沈 阳 大 学
课程设计说明书用纸
package chat; import java.awt.*; import yout.*; import javax.swing.*; import java.io.*; import java.awt.event.*; /** * <p>Title: 使用 JAVA 制作的局域网聊天程序</p> * <p>Description: 曹弘葆的 JAVA 作业</p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: </p> * @author RoadAhead * @version 1.0 */ public class frm_set extends JFrame { private JScrollPane jsp = new JScrollPane(); private JPanel pan_icon = new JPanel(); private JButton jButton1 = new JButton(); private JButton jButton2 = new JButton(); String uicon=""; private JPanel jPanel1 = new JPanel(); private PaneLayout paneLayout1 = new PaneLayout(); private Label label1 = new Label(); private JTextField ed_uname = new JTextField(); private JLabel lab_icon = new JLabel(); private JLabel jLabel1 = new JLabel(); private JCheckBox cbo_onstart = new JCheckBox(); private JCheckBox cbo_winstate = new JCheckBox(); private Label label2 = new Label(); private JTextField ed_ly = new JTextField(); public frm_set() { this.setTitle("设置用户参数"); this.setBounds(200,150,390,300); // this.setBounds(); try { jbInit(); }
基于JAVA聊天室系统的设计与实现-课程论文

计算机科学与技术学院《Java语言高级编程》课程论文题目:基于JAVA聊天室系统的设计与实现专业班级:姓名及学号:任课老师:年月日任务要求根据本学期课程所讲述的图形用户界面、网络编程、Java数据库以及Hibernate框架等相关知识实现一个小型应用系统。
具体要求如下:1.实现系统所用到的知识必须涵盖本学所讲述的图形用户界面、网络编程以及java数据库。
特别地,可以用所学的其他相关知识实现系统的界面部分,可以使用三大框架中的一种框架来实现系统。
2.课程论文的撰写要规范,所包含的主要内容有系统需求分析、相关技术介绍、主要功能与数据库的设计分析,实现部分需要包括实现的效果图以及主要代码,需要包括主要功能的测试。
3.要求学生独立完成系统实现与论文撰写,不能存在抄袭现象,一旦发现,课程论文设计为零分。
Java语言高级编程课程论文评分标准基于JAVA的聊天系统的设计与实现摘要如随着Internet技术的发展,人们的日常生活已经离不开网络。
未来社会人们的生活和工作将越来越依赖于数字技术的发展,越来越数字化、网络化、电子化、虚拟化。
电子商务也随着网络的发展日益和人们的生活贴近。
Internet的发展历程以及目前的应用状况和发展趋势,可以充分地相信网络技术将极大的改变我们的生活和工作方式,甚至社会的价值观也会发生某种变化。
在网络飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。
传统的信息交流工具,不能满足人们即时获取信息的要求。
因此,网上聊天便成为人们的首选,而一个好的聊天工具是:操作简单、方便、人性化,节省系统资源。
为了方便与人即时联系及数据汇报,特构建此聊天系统。
本论文通过Java的Socket实现了一个基于局域网和网络的聊天室程序的开发。
本论文详细介绍其设计和实现过程。
关键词:聊天室;Java;客户机/服务器;Socket;目录1 前言 (1)1.1 系统开发的背景 (1)1.2 聊天室的发展 (1)2 开发技术与工具介绍 (1)2.1 本课题开发环境的选择 (3)2.2 本课题开发工具的选择 (3)2.3 本课题开发技术的选择 (4)3 系统需求分析 (5)3.1项目概述 (5)3.1.1 产品描述 (5)3.1.2 产品功能 (6)3.2功能需求 (6)3.2.1 用户登录 (6)3.2.2 公聊 (6)3.2.3 私聊 (6)3.2.4 用户列表 (5)3.2.5 用户退出 (5)4 系统功能分析与设计 (8)4.1 目的 (8)4.2 运行环境 (8)4.3 体系结构概述 (8)4.4 功能设计 (8)4.4.1 用户登录 (8)4.4.2 公聊 (9)4.4.3 私聊 (10)4.4.4 好友列表 (10)4.4.5 用户退出 (10)5 详细设计 (12)5.1 配置与通信 (12)5.1.1 JDK的安装与配置 (12)5.1.2 连接数据库的实现 (13)5.1.3 通信 (13)5.2 登入 (15)5.3 群聊 (16)5.4 私聊 (16)5.5 用户列表 (18)5.6 用户退出 (19)5.7 功能逻辑实现 (19)5.8 数据库功能设计 (19)6 系统测试 (24)6.1 系统测试原则 (24)6.2 系统测试方法 (24)6.3 测试举例 (25)6.3.1 测试程序登陆界面 (25)6.3.2 测试程序主界面 (25)6.3.3 测试程序退出 (25)6.4 测试项目 (25)6.4.1 单元测试 (25)6.4.2 系统测试 (25)6.5系统测试总结 (26)结论 (27)参考文献 (28)1 前言1.1 系统开发的背景现在是网络时代,网络技术是计算机领域中发展最为迅速的技术之一,它在政治、经济、生活等各个方面发挥着十分重要的作用。
基于java的局域网聊天系统(可编辑)

基于Java的局域网聊天系统引论交流对于现代社会及其每个社会的成员都非常重要。
直接交流的方式有许多,包括语言交流、书面文字交流、肢体动作交流等,而远程通讯交流则还需借助于一些先进的高级工具,诸如移动电话、固定电话、网络等。
而本篇论文研究的则是网络即时通讯系统。
计算机网络技术发展到今天,已经非常的发达非常的普及了,网络带给人们的通讯交流方式也更加受到各个层次人们的青睐。
功能齐全的网络通讯交流设备不仅可以实现文本传输而且可以使人们进行音频视频的直观交流,在利用现代多媒体的技术的同时,它还有助于使用者对工作中各种信息进行分类和处理。
大家都知道,QQ是目前国内最火爆的网络通讯设备。
QQ最大的特点就是方便即时,只要记得对方的QQ号码,添加他为好友,就可以随时随地实现聊天、沟通、视频远程操作协助语音通话等功能,是比较现代化的通讯技术之一。
在现代信息科学技术社会,通讯系统推陈出新,功能强大。
该论文现在要探讨的即时通讯系统,是目标定位到企业内部网络,以方便解决企业公司内部的沟通交流等问题,可以大大提高企业公司的工作效率。
该通讯设备方便内部员工进行沟通交流,例如文字传送,语音聊天,视频通话等等。
该即时通讯系统由客户端程序与服务器端程序两部分组成,支持局域网和以太网。
而这样企业员工就可以在任何有网络覆盖的地方进行随时进行意见的交流和文件的传送等。
使人们不用浪费时间,花费金钱在固定的地点交流。
QQ等工具公共通讯系统,因为具有聊天内容和对象不可控的特点,可能会减低员工的工作效率。
由于该即时通讯系统用于企业内部,因此服务器端也安装在企业内部,并且只有系统管理员才能进行人员名称数目的创建,这样就助于更好的解决公共通讯系统存在的问题。
即时通讯具有良好的互动性,互动性可体现在人们在交流不同的问题意见时,发现听取对方的建议是效果更好。
通过使用及时通讯系统,人们可以在网络覆盖的地方和有电脑的情况下不借助其他外在设备,在线工作交流。
局域网聊天软件课程设计_毕业设计

课程设计报告课程名称:《面向对象程序设计》课程设计题目:贵师院局域网聊天软件姓名:学号:组员:学院:数学与计算机科学专业:计算机科学与技术年级:2011级指导教师:二○一三年七月目录1.设计的目的 (1)2.设计的内容 (1)3.概要设计 (3)3.1局域网聊天QQ的功能 (3)3.2局域网聊天QQ的能模块如下: (3)4.详细设计 (5)4.1编写服务器端程序 (5)4.1.1问题陈述 (5)4.1.2解决方案 (6)4.2客户端程序编写 (7)5.总结 (8)6.参考资料 (8)7.附录 (8)摘要随着互联网的发展,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多。
本次实验将依照腾讯公司聊天工具QQ的设计,实现局域网网络通信的基本功能,以便在用户在不联网的情况下也可以进行通信。
本文所写的“贵师院局域网聊天软件”是为了解决师院为了解决广大师院同学们上网困难,网费透支,网速慢等困难。
该软件主要包括:服务器响应,登录系统,注册,好友界面,聊天界面等。
在这次的课程设计中,我们应用了MyEclipse 6.0开发工具在WINDOWS平台上开发了一个基于WINDOWS平台的局域网通信工具,我们充分学习了JAVA Swing和awt界面开发技术,使自己在界面应用和界面布局方面得到更多的实践,应用Socket技术实现网络的连接功能,对网络的实现和通信方面有了进一步的理解,多线程方面的应用,使得客户端和服务端可以实现多任务功能。
关键词:Java, MyEclipse, 通讯, 局域网,聊天AbstractWith the development of the Internet, people rely on network more and more, more and more inseparable from the network, the resulting chat tools, more and more. This experiment will be in accordance with the design of tencent chat tool QQ, realize the basic function of the LAN network communication, so that the users in the case of not connected to the Internet can also communicate.This article written by the "your LAN chat software college" is to solve in order to solve the general teachers college students surfing the Internet is difficult, net charge overdraft, network speed is slow and difficult. The software mainly includes: the server response, login system, registration, friend interface, chat interface, etc. In the curriculum design, we applied the MyEclipse 6.0 development tools in WINDOWS platform based on WINDOWS platform to develop a local area network (LAN) communication tools, we fully learned JAVA Swing and awt interface development technology, make oneself in the aspect of application interface and interface layout to get more practice, Socket technology is applied to implement the network connection, for the realization of the network and communications have a further understanding ofmulti-threaded applications, making the client and the server can implement multitasking capabilities.Keywords : Java, MyEclipse, communication, Local area network, chat1 引言随着Internet的发展,Internet将提供越来越多的服务。
网络编程论文(网络聊天室JAVA版)

仲恺农业工程学院网络编程程序设计报告网络聊天室课程名称网络编程姓名张宝鑫院(系)信息科学与技术学院专业班级网络工程113班学号201110224328任课教师蒋明亮完成日期2013年12月31日目录1.需求分析 (1)1.1本课题的来源 (1)1.2可行性分析 (1)1.3功能要求 (1)1.4本系统涉及的知识点 (2)1.5系统运行需求 (2)2 程序总框图和功能模块说明 (2)2.1 程序总框图 (2)2.2 功能模块说明 (3)2.2.1客户端结构 (3)3. 系统设计 (4)3.1主要类设计 (4)3.2关键函数流程图 (4)3.2.1系统总体流程图 (4)3.2.2系统客户端流程图 (5)4. 系统调试 (6)4.1客户端 (6)4.2服务器端 (7)5.总结 (7)6. 源程序清单 (8)7成绩评定表 (29)1.需求分析1.1本课题的来源随着网络普及和上网人数的大增,在国内各大门户网站都架设了大型聊天室。
如:新浪聊天室、中华网社区聊天室、搜狐等都成为网民们的热门聊天室。
以新浪聊天室为例看,聊天室呈现积聚人气作用,并开设不同主题的聊天室以使网民们具有针对性的使用聊天室。
本小组计划设计一个实现基于Java语言的聊天室的Windows网络编程,启动服务器后,客户端运行,向服务器端发出请求,连接成功后,会弹出一个聊天室的界面,该界面有私聊(可加入生动的表情描述)、群聊、发送文件等功能,客户可以根据自己的需要选择不同的功能。
本人在此小组中的具体任务是实现文件的接收功能,启动服务器监听后,接收客户端发来请求,安排线程接收对方发来的文件(例如文档、照片、音乐、电影等)并存入指定的文件夹中。
1.2可行性分析经济可行性:由于本系统的主要背景是课程考核,不注重直接的经济效益和其后的发展方向,只在注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台能运行Java软件的电脑便可,所以不用考虑到经济问题。
JAVA基于PTP的局域网内的聊天、共享文件的课程设计源代码

.java文件以下是本文件的内容,总共有MyWindow.java PPfriend.java QQDialog.java receiveSMG.java Recevie.java RecevieToOne.java SendFile.java SendToOne.javaMyWindow.javapackage hf;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;class APanel extends Panel {TextArea chat_txt;APanel2 apanel2;public APanel(){chat_txt = new TextArea(40,40);chat_txt.setEditable(false);apanel2 = new APanel2();setLayout(new BorderLayout());add("West",chat_txt);add("East",apanel2);}}class APanel2 extends Panel{java.awt.List list;APanel2(){try{list = new java.awt.List(25,false);}catch(NullPointerException e){}setLayout(new BorderLayout());add("Center",list);add("North", new Label("当前聊天者列表:"));add("East",new Label());add("South",new Label("双击一个人的昵称可以进行交谈"));}}class BPanel extends Panel{TextField msg_txt;Button button1,button2,button3,button4,button5; //button1 button2用做public BPanel(){msg_txt = new TextField(30);button1 = new Button("发送");button2 = new Button("刷新谈话区");button3 = new Button("刷新在线用户");setLayout(new FlowLayout(FlowLayout.LEFT));add(new Label("发送的话"));add(msg_txt);add(button1);add(button2);add(button3);}}class MyWindow extends Frame{Label person;APanel pa;BPanel pb;public MyWindow(){super("..");person = new Label("聊天记录:");pa = new APanel();pb = new BPanel();setLayout(new BorderLayout());setBackground(new Color(206,113,150));setSize(550,450);setLocation(450,100);setResizable(false);add("North",person);add("Center",pa);add("South",pb);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(1);}});setVisible(true);}}PPfriend.javapackage hf;import java.applet.Applet;import java.applet.AudioClip;import java.awt.*;import java.awt.event.*;import java.io.*;import .*;import java.util.*;import javax.swing.*;public class PPfriend extends JFrame implements ActionListener{ public String myAddress;public String myIP;Button button1,button2,button3;Vector clients = new Vector();public MyWindow myw ;QQDialog qq ;String sendIp;BroadcastThread broadcast;receiveSMG rm;String filepath=null;String savepath=null;RecevieToOne recevietoone;public static void main(String []str){new PPfriend();}public PPfriend(){try{ppInit();}catch(Exception e){e.printStackTrace();}serverListen();}void ppInit(){myw = new MyWindow();qq = new QQDialog("QQ");qq.setVisible(false);qq.refile.setEnabled(false);recevietoone = new RecevieToOne(this);recevietoone.start();myw.pa.apanel2.list.addActionListener(this);myw.pb.button1.addActionListener(this);myw.pb.button2.addActionListener(this);myw.pb.button3.addActionListener(this);qq.fileBut.addActionListener(this);qq.sendBut.addActionListener(this);qq.refile.addActionListener(this);rm = new receiveSMG(this);rm.start();}public void serverListen(){broadcast = new BroadcastThread();broadcast.start();}public void actionPerformed(ActionEvent e){if(e.getSource() == myw.pb.button1 ){myw.pa.chat_txt.append(myIP+": "+myw.pb.msg_txt.getText()+"\n");for(int i=0;i < clients.size();i++){if(!clients.elementAt(i).toString().equals(myIP)){try{String message = myIP+": "+myw.pb.msg_txt.getText().toString();InetAddress ia = InetAddress.getByName(clients.elementAt(i).toString());byte[] bs = message.getBytes();DatagramPacket sendmessage = new DatagramPacket(bs, bs.length,ia, 8005);DatagramSocket socket = new DatagramSocket();socket.send(sendmessage);socket.close();qq.chat_txt.setText(null);qq.chat_txt.requestFocus();}catch(Exception ee){ee.printStackTrace();}}}myw.pb.msg_txt.setText(null);myw.pb.msg_txt.requestFocus();}else if(e.getSource() == myw.pb.button2){myw.pa.chat_txt.setText("");}else if(e.getSource() == myw.pb.button3){broadcast.yield();broadcast=null;clients.clear();myw.pa.apanel2.list.removeAll();myw.pa.apanel2.list.repaint();serverListen();}else if(e.getSource()==myw.pa.apanel2.list){qq.setVisible(true);sendIp = myw.pa.apanel2.list.getSelectedItem().toString();}else if(e.getSource() == qq.fileBut){ //发送文件JFileChooser chooser = new JFileChooser();int returnVal=chooser.showDialog(null, "send");if(returnVal==chooser.APPROVE_OPTION){filepath=chooser.getSelectedFile().getAbsolutePath();SendFile mysf=new SendFile(this,filepath);mysf.start();}}else if(e.getSource()==qq.refile){{JFileChooser mychooser = new JFileChooser();int myreturnVal=mychooser.showDialog(null, "save");if(myreturnVal==mychooser.APPROVE_OPTION){savepath=mychooser.getSelectedFile().getAbsolutePath();Recevie myrecevie=new Recevie(this,savepath);myrecevie.start();}}}else if(e.getSource() == qq.sendBut){try{String message = myIP+": "+qq.chat_txt.getText().toString();myw.pa.chat_txt.append(message+"\n");InetAddress ia = InetAddress.getByName(sendIp.toString());byte[] bs = message.getBytes();DatagramPacket sendmessage = new DatagramPacket(bs, bs.length,ia, 8005);DatagramSocket socket1 = new DatagramSocket();socket1.send(sendmessage);qq.chat_txt.setText(null);qq.chat_txt.requestFocus();socket1.close();}catch(Exception ee){ee.printStackTrace();}}}class BroadcastThread extends Thread{public void getmyAddress(){try{InetAddress addr = InetAddress.getLocalHost();myAddress= addr.getAddress().toString();//获得本机名称myIP=addr.getHostAddress();//获得本机IP}catch(Exception e1){e1.printStackTrace();}}public void run(){try{MulticastSocket multicastSocket = new MulticastSocket(7777);InetAddress inetAddress = InetAddress.getByName("230.0.0.1");multicastSocket.joinGroup(inetAddress);byte [] receiveIp = new byte [12];getmyAddress();while (true){DatagramPacket sendIp = new DatagramPacket(myAddress.getBytes(),myAddress.length(),inetAddress,7777);multicastSocket.send(sendIp);DatagramPacket datagramPacket = new DatagramPacket(receiveIp, receiveIp.length,inetAddress,7777);multicastSocket.receive(datagramPacket);String ip = datagramPacket.getAddress().getHostAddress().toString();if((!clients.contains(ip)))clients.add(ip);myrepaint();sleep(1000);}}catch (Exception exception){exception.printStackTrace();}}void myrepaint(){myw.pa.apanel2.list.removeAll();for(int i = 0;i < clients.size();i++){myw.pa.apanel2.list.add(clients.elementAt(i).toString());}}}}QQDialog.javapackage hf;import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.*;public class QQDialog extends JFrame{TextArea chat_txt;Button sendBut,fileBut,refile;QQDialog(String name){super(name);Label title = new Label("密函:");chat_txt = new TextArea(20,20);chat_txt.setEditable(true);sendBut = new Button("发送");fileBut = new Button("发送文件");refile = new Button("接受文件");setLayout(new BorderLayout());Panel p = new Panel(new FlowLayout(FlowLayout.LEFT));p.add(sendBut);p.add(fileBut);p.add(refile);add("North",title);add("Center",chat_txt);add("South",p);setSize(400,200);setLocation(400,400);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){e.getWindow().dispose();}});setVisible(true);}}receiveSMG.javapackage hf;import java.applet.Applet;import java.applet.AudioClip;import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;import .DatagramPacket;import .DatagramSocket;import .ServerSocket;import .Socket;public class receiveSMG extends Thread{public String msg;PPfriend friend;receiveSMG(PPfriend friend){this.friend =friend;}public void run(){try{File music = new File("remsg.wav");AudioClip ac = Applet.newAudioClip(music.toURL());while(true){byte[] inbuf = new byte[2048]; // 默认的数据缓冲大小DatagramSocket socket = new DatagramSocket(8005);DatagramPacket packet = new DatagramPacket(inbuf, inbuf.length);socket.receive(packet);// 接受数据msg = new String(packet.getData());if(msg!=null){friend.myw.pa.chat_txt.append(msg);friend.myw.pa.chat_txt.append("\n");ac.play();}socket.close();sleep(1000);}}catch(Exception eee){eee.printStackTrace();}}}Recevie.javapackage hf;import .*;import java.io.*;import javax.swing.JFileChooser;import javax.swing.JOptionPane;public class Recevie extends Thread{private String filepath=null;PPfriend friend=null;InetAddress addr;public Recevie(PPfriend friend,String savepath) {this.friend = friend;filepath=savepath;}public void doclient() throws Exception{int length;File file=new File(filepath);FileOutputStream outputb=new FileOutputStream(file);if(friend.recevietoone.getip!=null){addr=InetAddress.getByName(friend.recevietoone.getip);}Socket socket=new Socket(addr,8888);try{//System.out.println("socket= "+socket);PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);InputStream netIn=socket.getInputStream();InputStream in=new DataInputStream(new BufferedInputStream(netIn));OutputStream netOut=socket.getOutputStream();OutputStream doc=new DataOutputStream(new BufferedOutputStream(netOut));byte []buf=new byte[2048];length=in.read(buf);while(length!=(-1)){ //是否读完所有数据outputb.write(buf,0,length);//将数据写往文件length=in.read(buf);//继续从网络中读取文件}in.close();outputb.close();}finally{JOptionPane.showMessageDialog(null, "文件传输成功!", null,JOptionPane.OK_OPTION);socket.close();}}public void run(){try {this.doclient();} catch (Exception e) {e.printStackTrace();}}}RecevieToOne.javapackage hf;import java.applet.Applet;import java.applet.AudioClip;import java.io.File;import .DatagramPacket;import .DatagramSocket;import .InetAddress;public class RecevieToOne extends Thread{DatagramSocket datasocket;public String getip =null;PPfriend friend;public RecevieToOne(PPfriend friend){super("kk");this.friend = friend;}public void run(){try {byte[] inbuf = new byte[256]; // 默认的数据缓冲大小DatagramSocket socket = new DatagramSocket(8889);// 等待数据DatagramPacket packet = new DatagramPacket(inbuf, inbuf.length);socket.receive(packet);getip = packet.getAddress().getHostAddress().toString();if(getip !=null){friend.qq.refile.setEnabled(true);File music = new File("refile.wav");AudioClip ac = Applet.newAudioClip(music.toURL());ac.play();friend.qq.setVisible(true);return;}}catch (Exception e) {e.printStackTrace();}}}SendFile.javapackage hf;import java.io.*;import .*;import javax.swing.JFileChooser;import javax.swing.JOptionPane;public class SendFile extends Thread {public static final int PORT=8888;PPfriend friend;private String filepath=null;SendToOne sendtoone;public SendFile(PPfriend friend,String filepath2) {this.friend = friend;filepath=filepath2;}public void doserver() throws IOException, URISyntaxException{int length;sendtoone = new SendToOne(friend);File file=new File(filepath);FileInputStream fos=new FileInputStream(file);ServerSocket s=new ServerSocket(PORT);try{Socket socket=s.accept();try{InputStream netIn=socket.getInputStream();InputStream in=new DataInputStream(new BufferedInputStream(netIn));OutputStream netOut=socket.getOutputStream();OutputStream doc=new DataOutputStream(new BufferedOutputStream(netOut));file.getAbsolutePath();byte[] buf=new byte[2048];length=fos.read(buf);while(length!=(-1)){ //是否读完文件doc.write(buf,0,length);//把文件数据写出网络缓冲区doc.flush();//刷新缓冲区把数据写往客户端length=fos.read(buf);//继续从文件中读取数据}fos.close();doc.close();}finally{JOptionPane.showMessageDialog(null, "文件传输成功!", null,JOptionPane.OK_OPTION);socket.close();}}finally{s.close();}}public void run() {try {this.doserver();} catch (IOException e) {e.printStackTrace();} catch (URISyntaxException e) {e.printStackTrace();}}}SendToOne.javapackage hf;import .*;public class SendToOne {DatagramSocket datasocket;InetAddress ia;PPfriend friend;public SendToOne(PPfriend friend){this.friend= friend;try {Thread.sleep(1000); // 休眠1秒,等待接收服务启动ia = InetAddress.getByName(friend.sendIp);byte[] bs = "net".getBytes();DatagramPacket request = new DatagramPacket(bs, bs.length, ia, 8889);DatagramSocket socket = new DatagramSocket();socket.send(request);}catch (Exception e) {e.printStackTrace();}}public void run(){}}。
javaJAVA局域网聊天程序设计方案与实现(附源代码)

封面作者:PanHongliang仅供个人学习摘要随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。
目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。
即时通讯软件,是每一个上网用户都需要的工具,它除了能够让您迅速地在网上找到自己的朋友和伙伴之外,还可以实时交谈和传递信息,截止到目前,全球约有近3亿多人使用即时软件,正因为即时通讯软件拥有数以亿计的用户和增长的市场,所以各个公司都盯上了这个最大的市场,一时间,即时通讯市场硝烟四起。
对等网络(peer-to-peer,简称P2P),应用最初出现时和现在并不相同。
事实上可以认为它是若干不同技术以及流行趋势相结合的产物。
以下是导致P2P技术发展最重要的趋势:首先,一些新技术与软件工程的结合,形成了一种将工作分散的趋势。
P2P计算正是这种分散工作趋势的结果。
其次,在企业应用集成等因素的驱动下,过去十年渐渐形成从集中的单机系统转向分布式系统。
然而随着互联网的发展,全面的分布式计算也就成为一种迫切需求。
关键词:局域网聊天 P2P javaAbstractWith the development of the Internet,the chat tool as a communication tool, has been popularly accepted by netizens of all ages.At present, there are many powerful chat tools, of which Tencent QQ, MSN-Messager are much more prevalent.Instant messaging software is necessary for every one who connects to the internet, which can not only provide you a prompt way to find friends and partners online, but can provide you the convenience of internet relay chat and information delivering. Up to now, there are about 300 million people using real-time software all over the world. As more and more corporations have focused on this market with growing potential, which has hundreds of millions of uses, the competitions among these corporations are extremely fierce.The initial application of peer-to-peer network (peer-to-peer, referred to as P2P) is not the same as it is now. In fact, it can be regarded as a combination of different technologies and fashion trends. Below are the most important trends that have led the development of P2P technology: First of all, the integration of software engineering and new technologies led to a working dispersion trend. As a result, P2P computing was born. Then, in the past decade, it has turned fro m a single centralized system to distributed system due to the motivation of factors such as enterprise application integration. At last, with the development of the Internet, however, a comprehensive distributed computing has become an urgent need.Keywords:LAN chat P2P java目录摘要iAbstractii1绪论21.1JAVA的网络功能与编程21.1.1JAVA概述21.1.2 JAVA的特点41.1.3 JAVA语言在网络上的应用61.2J AVA B EANS技术61.3IP/TCP协议常识61.4S OCKET的简介71.5对等网络81.5.1 对等网络发展历史81.5.2 对等网络的概念81.5.3 对等网络的主要系统结构92 JAVAqq局域网聊天程序的需求分析112.1课题来源112.2需求分析113 JAVAqq局域网聊天程序的系统分析与设计123.1JAVA QQ局域网聊天程序的总体设计要点123.2JAVA QQ局域网聊天程序的设计步骤及功能模块划分133.3JAVA QQ局域网聊天程序各功能模块134 JAVAqq局域网聊天程序的设计与实现194.1开发环境工具194.2硬件环境194.3聊天系统功能模块的测试20结论20致谢21参考文献22附录 A 程序源代码231绪论随着互联网逐步普及,互联网技术的逐步提高。
Java简易聊天工具课程设计报告及代码

J a v a网络编程实践课程设计说明书课程名称:Java网络编程课程设计_题目:__基于C/S的班级聊天室(群聊)工具姓名:____HJC_____学号:201211012 201211006教学班号:软件工程1201班指导教师:xxx_______x x x x x x软件科学与工程系二○一三年十二月二十二日Java网络编程实践任务书目的:熟悉JA V A 语法,掌握图形化界面、多线程、网络、数据库等综合编程,掌握用编程语言开发由若干功能组成的小型项目的基本流程,增强动手实践能力,巩固和加强书本知识的学习,体会JA V A编程的特点。
题目1:基于C/S的班级即时通讯工具(2人)要求:1.C/S模式,基于Socket实现,服务器端用多线程来处理同时多个客户端连接。
2.数据存储:服务器端存储最少一个班级的信息;最好多个班级,主要存储班级若干学生的基本信息。
用数据库存储。
下面所有功能只考虑一个班是基本实现,考虑多个班是拓展实现。
3.界面:GUI界面,友好直观,布局合理,方便的功能入口。
4.功能:1)登陆输入用户名和密码;用户名是学号,有初始密码,例如111111;2)登陆验证根据服务器端存储的班级信息,对输入的用户进行验证,看是否存在于该班(只考虑一个班的情况)。
或是否是某个班的学生(多个班的情况)。
验证通过进入主界面,否则给出错误提示。
3)主界面列出该学生好友列表(同班级同学默认全是该生好友,如果是多个班则可以添加别班好友并经对方批准)。
4)即时聊天,选中某个好友,双击打开窗口聊天。
如果不在线则服务器等对方上线后转发(此功能属拓展实现)。
5)可以修改自己的登陆密码。
6)题目2:基于C/S的班级聊天室(群聊)工具(2人)要求:1.C/S模式,基于Socket实现,服务器端用多线程来处理同时多个客户端连接。
2.数据存储:服务器端存储一个班级的信息;主要存储班级若干学生的基本信息。
用数据库存储。
3.界面:GUI界面,友好直观,布局合理,方便的功能入口。
基于JAVA局域网聊天程序设计与实现(附源代码)毕业论文

局域网聊天课程设计毕业论文基于JAVA局域网聊天程序设计与实现(附源代码)摘要随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。
目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。
即时通讯软件,是每一个上网用户都需要的工具,它除了能够让您迅速地在网上找到自己的朋友和伙伴之外,还可以实时交谈和传递信息,截止到目前,全球约有近3亿多人使用即时软件,正因为即时通讯软件拥有数以亿计的用户和增长的市场,所以各个公司都盯上了这个最大的市场,一时间,即时通讯市场硝烟四起。
对等网络(peer-to-peer,简称P2P),应用最初出现时和现在并不相同。
事实上可以认为它是若干不同技术以及流行趋势相结合的产物。
以下是导致P2P技术发展最重要的趋势:首先,一些新技术与软件工程的结合,形成了一种将工作分散的趋势。
P2P计算正是这种分散工作趋势的结果。
其次,在企业应用集成等因素的驱动下,过去十年渐渐形成从集中的单机系统转向分布式系统。
然而随着互联网的发展,全面的分布式计算也就成为一种迫切需求。
关键词:局域网聊天 P2P javaAbstractWith the development of the Internet,the chat tool as a communication tool, has been popularly accepted by netizens of all ages. At present, there are many powerful chat tools, of which Tencent QQ, MSN-Messager are much more prevalent.Instant messaging software is necessary for every one who connects to the internet, which can not only provide you a prompt way to find friends and partners online, but can provide you the convenience of internet relay chat and information delivering. Up to now, there are about 300 million people using real-time software all over the world. As more and more corporations have focused on this market with growing potential, which has hundreds of millions of uses, the competitions among these corporations are extremely fierce.The initial application of peer-to-peer network (peer-to-peer, referred to as P2P) is not the same as it is now. In fact, it can be regarded as a combination of different technologies and fashion trends. Below are the most important trends that have led the development of P2P technology: First of all, the integration of software engineering and new technologies led to a working dispersion trend. As a result, P2P computing was born. Then, in the past decade, it has turned fro m a single centralized system to distributed system due to the motivation of factors such as enterprise application integration. At last, with the development of the Internet, however, a comprehensive distributed computing has become an urgent need.Keywords:LAN chat P2P java局域网聊天课程设计目录摘要 (i)Abstract .................................................................................................................................... i ii 1绪论 . (1)1.1JAVA的网络功能与编程 (1)1.1.1JAVA概述 (1)1.1.2 JAVA的特点 (3)1.1.3 JAVA语言在网络上的应用 (5)1.2J AVA B EANS技术 (6)1.3IP/TCP协议常识 (6)1.4S OCKET的简介 (7)1.5对等网络 (8)1.5.1 对等网络发展历史 (8)1.5.2 对等网络的概念 (9)1.5.3 对等网络的主要系统结构 (9)2 JAVAqq局域网聊天程序的需求分析 (13)2.1课题来源 (13)2.2需求分析 (13)3 JAVAqq局域网聊天程序的系统分析与设计 (15)3.1JAVA QQ局域网聊天程序的总体设计要点 (15)3.2JAVA QQ局域网聊天程序的设计步骤及功能模块划分 (15)3.3JAVA QQ局域网聊天程序各功能模块 (16)4 JAVAqq局域网聊天程序的设计与实现 (24)4.1开发环境工具 (24)4.2硬件环境 (24)4.3聊天系统功能模块的测试 (24)结论 (27)致谢 (29)参考文献 (30)附录 A 程序源代码 (31)1绪论随着互联网逐步普及,互联网技术的逐步提高。
基于Java的网络聊天工具的开发与实现本科毕业论文

基于Java的网络聊天工具的开发与实现中文摘要当前是信息网络得到飞速发展的时代,尤其是计算机和通信技术的发展和结合,深深的影响着我们的生活、学习和工作方式。
其中,网络聊天工具成为人们日常交流的一种重要工具,它成本低,通信速度快,方便信息交流和资料的传递。
目前应用比较广泛的聊天工具有腾讯QQ、Net meeting、MSN等,这些软件简单易用,深受大众喜欢。
在论文中,首先论述了系统的开发背景,并对所用到的开发工具与关键技术做了简单的介绍。
接着对系统的研究意义,研究现状及设计目标进行分析,通过对系统需求和可行性进行分析,确定了系统的功能模块,并画出相应的功能结构图、模块图。
其次按系统总体设计的结果,对系统进行结构设计。
本次开发的网络聊天系统是基于开放的Java应用程序设计的,能动态、实时地完成信息的传递,且具有高效的交互性,能更有效地处理客户请求,易于维护和更新。
系统采用客户机/服务器的架构模式,由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,使用Java提供的Socket类以及Java的多线程功能,在不同的端口上部署各类服务,可以在单个程序中同时运行多个不同进程,而客户端通过Socket发送信息给服务器,从而实现多点对多点的聊天。
关键词:Java,交互性,Socket类,多线程ABSTRACTThe rapid development of the information networks, especially the development and integration of computer and communication technologies, has deeply affected our lives, learning and work. Among them, the Internet chat tool becomes an important tool for daily communication, because of it’s low cost, fast communication and facilitate information exchange and data transmission. Currently used widely in the chat tool are Tencent QQ, Net meeting, MSN, etc.In the paper, firstly I discuss the background of the development of the system and simply introduce the development tools and key technologies used. Secondly I analyze the research and design objectives to the significance of the system. Through the system requirements and feasibility analysis, I determine the functional modules of the system and draw the corresponding function block diagram, block diagram. Then according to the results of the overall system design, I design the structural of the system.The development of the Internet chat system is designed based on open Java application. It can be dynamic, real-time information transfer and efficient interaction so that it can deal more effectively with customer requests, easy to maintain and update. The system will use the client / server architecture model, which includes the client program and server programs plus server-side database used to store customer data. By using the socket class provided by java and java multi-threading capability,we can deploy various services on a different port and a number of different processes can be run simultaneously in a single program. Clients send information to the server through the socket in order to achieve multi-point-to-multipoint chat.Key words:Java, interactivity, the Socket class, multi-threaded目录第1章绪论 (1)1.1课题背景 (1)1.2开发技术 (1)1.2.1 Java (1)1.2.2 TCP/IP (3)1.2.3 Socket (4)1.3开发工具 (5)1.3.1 Eclipse (5)1.3.2 StarUML (6)第2章系统需求分析 (7)2.1基本功能需求 (7)2.2性能需求 (7)2.3界面需求 (7)第3章系统设计 (8)3.1系统功能设计 (8)3.2系统总体设计 (9)3.2.1 系统方案设计 (9)3.2.2 系统功能模块图 (9)3.2.3 系统类图 (10)3.2.4 系统用例图 (11)3.2.5 时序图 (12)3.2.4活动图 (12)第4章系统实现 (17)4.1数据库连接实现 (17)4.2登录、注册功能实现 (18)4.3聊天功能实现 (20)4.4好友管理功能实现 (25)4.5资源共享功能实现 (30)总结 (34)参考文献 (35)致谢 (36)第1章绪论1.1 课题背景现在互联网越来越发达,网络聊天工具成为人们日常交流的一种重要工具,它成本低,通信速度快,方便信息交流和资料的传递,所以开发一个界面友好、易于操作的聊天工具能较好地解决电话的单线程通信以及费用高昂等问题。
毕业设计-局域网聊天

第二章 实现聊天室的相关技术及环境
2.1 JAVA
Java简介
Java是由Microsystems公司于1995年5月推出的Java程序设计(下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动感的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新。
Java平台由Java虚拟机(Java Virtual Machine)和Java应用编程接口(Application Programming Interface、简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4,最近版本为Java1.6。
IM软件的历史并不久远,但是它一诞生,就立即受到网民的喜爱,并风靡全球。在它的发展史上,以色列人是功不可没的。正是四位以色列籍的年轻人,在1996年7月成立的Mirabilis公司,并于同年11月推出了全世界第一个即时通讯软件ICQ,取意为“我在找你”——“I Seek You”,简称ICQ了。直到现在,ICQ已经推出了它的2002a版本,在全球即时通讯市场上占有非常重要的地位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA聊天室的系统的设计与开发1.主要内容:用JA V A实现基于C/S模式的聊天室系统。
聊天室分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。
2.具体要求(包括技术要求等):系统的功能要求:A.服务器端主要功能如下:1.在特定端口上进行侦听,等待客户端连接。
2.用户可以配置服务器端的侦听端口,默认端口为8888。
3.向已经连接到服务器端的用户发送系统消息。
4.统计在线人数。
5.当停止服务时,断开所有的用户连接。
B.客户端的主要功能如下:1.连接到已经开启聊天服务的服务器端。
2.用户可以配置要连接的服务器端的IP地址和端口号。
3.用户可以配置连接后显示的用户名。
4.当服务器端开启的话,用户可以随时登录和注销。
5.用户可以向所有人或某一个人发送消息。
学习并掌握一下技术:Java JavaBean 等熟练使用一下开发工具:Eclipse,JCreator 等实现系统上诉的功能。
3.进度安排:12月28日~ 12月29日:课程设计选题,查找参考资料12月30日~ 1月1日:完成系统设计1月2日~ 1月5日:完成程序代码的编写1月6日:系统测试与完善1月7日:完成课程设计报告,准备答辩4.主要参考文献:[1].张广彬孟红蕊张永宝.Java课程设计(案例精编)[M].清华大学出版社.2007年版摘要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。
基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。
一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Soket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。
本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。
系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。
使用JAVA语言编写,开发工具采用Eclipse。
服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。
大大增强了程序对服务器资源的利用。
聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。
关键词:多线程;客户机/服务器;JA V A ;Socket ;Eclipse ;TCP/IP目录JA V A程序课程设计任务书.......................................................... 错误!未定义书签。
摘要 .. (I)目录 (II)第1章引言 (1)1.1背景 (1)1.2课程设计内容 (1)1.3任务分工.............................................................................. 错误!未定义书签。
第2章聊天室系统 .. (2)2.1聊天室系统概述 (2)2.1.1 聊天室系统的定义 (2)2.1.2 聊天室系统的任务及目的 (3)2.2主要聊天室系统介绍 (3)2.3本章小结 (5)第3章聊天室系统的设计 (5)3.1系统需求分析 (5)3.2系统开发及运行环境 (5)3.3系统主要功能要求 (5)3.4系统模块化分析 (6)3.4.1 聊天室系统总体结构 (6)3.4.2 聊天室系统各模块介绍 (7)3.5系统数据流图 (9)3.6本章小结 (9)第4章系统的具体实现 (10)4.1界面设计 (10)4.1.1服务器启动界面图 (10)4.1.2服务器启动成功界面图 (11)4.1.3客户端界面图 (11)4.1.4用户设置界面图 (12)4.1.5用户成功登录界面图 (12)4.1.6两人私聊界面图 (13)4.1.7多人群聊界面图 (13)4.2程序设计及调试运行 (13)4.2.1 程序调试(以服务器为例) (14)4.2.2 JCreator (19)4.3本章小结 (20)第5章结束语 (21)致谢 (22)附录源代码 (23)第1章引言1.1 背景当今主流的聊天工具有QQ,ICQ,MSN Messenger,Yahoo Messenger等,国内最热门的当属QQ,腾讯QQ(OICQ)是由深圳市腾讯计算机系统公司开发的,基于Internet的即时寻呼软件。
您可以使用QQ和好友用户进行交流,信息即时发送,即时回复,收发及时、功能全面。
此外QQ还具有BP机网上寻呼、聊天室、传输文件、语音邮件、手机短讯服务等功能,QQ不仅仅是虚拟的网络寻呼机,更可与传统的无线寻呼网、GSM移动电话的短消息系统互联,目前QQ和全国多家寻呼台、移动通信公司有业务合作。
是国内不可多得的中文网络寻呼机。
QQ支持显示朋友在线信息、即时传送信息、即时交谈、即时发送文件和网址。
QQ可以在Win95/98/NT/2000操作系统下运行,是十分灵活的网络寻呼工具。
它会自动检查您是否已联网,如果您的电脑已连入Internet,可以搜索网友、显示在线网友,可以根据QQ号、昵称、姓名、email地址等关键词来查找,找到后可加入到通讯录中。
当您的通讯录中的网友在线时,QQ中朋友的头像就会显示在线,根据提示就可以发送信息,如果对方登记了寻呼机或开通了GSM手机短消息,即使离线了,您也可及时将信息传递给您的好友。
虽然以上这些软件是免费的,并且功能越来越强大。
但是它们的唯一的不足就是必须要联网或者下载到它们的服务端,要不然是没法脱离Intenet使用的。
为了能在一个没有连接到Intenet的局域网使用聊天工具,那就必须要有服务器端。
本系统就是包括服务器端与客户端,可以在局域网聊天的一个工具。
1.2 课程设计内容实现的是局域网中的聊天功能,运行服务程序后,服务器创建成功,然后使服务器对某一个设定的端口处于监听状态,当有客户端请求建立连接时,服务器就可接受请求,建立连接!这样服务器和客户端就可相互发送消息,实现聊天功能!系统的功能要求:A.服务器端主要功能如下:1.在特定端口上进行侦听,等待客户端连接。
2.用户可以配置服务器端的侦听端口,默认端口为8888。
3.向已经连接到服务器端的用户发送系统消息。
4.统计在线人数。
5.当停止服务时,断开所有的用户连接。
B.客户端的主要功能如下:1.连接到已经开启聊天服务的服务器端。
2.用户可以配置要连接的服务器端的IP地址和端口号。
3.用户可以配置连接后显示的用户名。
4.当服务器端开启的话,用户可以随时登录和注销。
5.用户可以向所有人或某一个人发送消息第2章聊天室系统2.1 聊天室系统概述聊天室是一种基于互联网的即时交流系统,最初是ICQ,也称网络寻呼机。
此类软件使得人们可以运用连上INTERNET网的电脑用户可以随时跟另外一个在线网民交谈,甚至可以通过视频看到对方的适时图像。
使人们不必担心昂贵的话费而畅快交流,并工作、交流两不误。
2.1.1 聊天室系统的定义聊天时系统是通过即时通讯技术来实现在线聊天、交流的软件。
目前有2种架构形式,1、一种是C/S架构,采用客户端/服务器形式,用户使用过程中需要下载安装客户端软件,典型的代表有:QQ、百度HI 、Skype QQ VS GU、Gtalk、新浪UC、MSN等;2、采用B/S架构,即浏览器/服务端形式,这种形式的即时通讯软件,直接借助互联网为媒介、客户端无需安装任何软件,既可以体验服务器端进行沟通对话,一般运用在电子商务网站的服务商,典型的代表有Websitelive 、53KF、live800等。
2.1.2 聊天室系统的任务及目的本系统主要通过客户端,服务器端来体现聊天系统的基本功能。
(1)服务器端1.处理用户注册2.处理用户登录3.处理用户发送信息,服务器监控聊天内容,服务器过滤非法内容4.处理用户得到信息5.处理用户退出8. 服务器踢人。
9. 保存服务器日志。
10.保存用户聊天信息。
(2)客户端1.用户注册界面及结果2.用户登录界面及结果3.用户发送信息界面及结果4.用户得到信息界面及结果5.用户退出界面及结果2.2 主要聊天室系统介绍目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN(新版改名为Live Messenger)以及跨平台Gaim等。
本人取最具代表性的QQ和MSN进行了一些研究,作为我开发聊天系统的准备。
腾讯无疑是国内即时通讯市场的霸主,自从99年进入即时通讯领域并迅速占市场之后,其在国内用户数量始终高居榜首,即使近几年面对微软MSN的强大攻势,腾讯QQ的时常占有率依然稳步增长。
腾讯的成功与其对QQ的不断创新和完善是分不开的。
参考了许多网络上的资料,以及自己通过观察腾讯QQ运行时的各种细节。
可以确定腾讯QQ是以多服务器提供服务、服务器总控客户端、客户端之间UDP 直连通信的。
并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通信。
其模型如图1-1图1-1 腾讯QQ服务器-客户端模型1与腾讯QQ不同,微软的MSN Messenger只使用了TCP作为传输层通信协议,所有客户端与服务器进行连接,然后通过与服务器的TCP连接进行中转通信。
其模型如图1-2图1-2 MSN服务器-客户端模型2腾讯使用的模型中,服务器主要处理客户端各种状态的控制,可以极大减轻服务器的处理压力,但其内部协议和实现复杂度都较高。
而MSN Messenger所有数据都要经过服务器,服务器压力可想而知(难怪平时很少见到使用MSN进行语音视频聊天的)。
2.3 本章小结这一章介绍了当前聊天室系统应该具备的功能模块,并提供了市面上比较流行的聊天室系统作为参考。
在这一章中,我们可以了解什么是聊天室系统,当前聊天室系统的市场需求,还有一个聊天室系统应该的开发目标。
第3章聊天室系统的设计这一章是聊天室系统的设计,从系统需求分析开始,介绍开发环境和用到的开发工具,系统主要的功能设计,系统的数据流程图。
3.1 系统需求分析聊天室的设计目标:通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用,用JA V A 实现基于C/S模式的聊天室系统。
3.2 系统开发及运行环境硬件平台:❑CPU:Pentium 2.8GHz以上。