版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网络编程技术课程设计论文网络编程技术课程设计论文2012 2013学年第二学期题 目: 局域网通讯软件 专业班级: 学 号: 姓 名: 指导老师: 日 期: 2013-6-25 摘 要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的QQ。基于Java网络编程的强大功能,本次毕业设计使用Java编写一个局域网通讯系统。 一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器
2、之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天。本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。使用JAVA语言编写,开发工具采用Eclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利用。通讯完成后将可进行多人对多人的聊天,对新用户的注册发送消息、接受消息等等功能。目录1引言42课程设计的目的:43java语言简介:54TCP/IP协议:65.
3、 课程设计说明书:75.1 选题意义:75.2 达到的目标:85.3 功能要求:85.4 设计图如下:95.5 概要设计:105.6 详细设计:116程序源代码:127.程序运行结果:178.总结:181引言随着移动通信技术的飞速发展和普及,在移动通信领域中出现了越来越丰富的业务种类,除了传统的语音与数据业务外,多媒体业务、交互式数据业务、电子商务、互联网业务等多种信息服务也越来越受到人们的青睐。同时,移动通信网络的安全性将变得越来越重要。目前国内外做聊天系统的公司很多,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN,以及跨平台Gaim等。本人取最具代表性的QQ和MSN进行了一些
4、研究,参考了许多网络上的资料,服务器总控客户端、客户端之间UDP直连通信的。并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通信。2课程设计的目的: java网络编程技术是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力。3java语言简介: Java最初是由Sun公司开发的面向对象的编程语言,Java比C和C+更简洁和更容易设计,Java语言不能在类的外面定义数据和函数
5、。所有对象都派生自同一个基类Object,并共享它所有的功能。Java只支持单一继承,但通过接口可支持有限形式,的多重继承。分布式包括数据分布和操作分布。用Java写的应用程序不用修改就可在不同的软硬件平台上运行,Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性,Java在两方面支持多线程,利用Java的多线程编程接口,开发人员可以方便地写出支持多线程的应用程序,提高程序执行效率,Java平台是一种全新的软件平台,它主要由两部分组成:Java VM和Java API(应用编程接口)。Java虚拟机是Java平台的核心,它可以用软件实现,也可以用硬件实现。Java API为Jav
6、a小应用程序和应用软件的标准接口,是应用开发的基本框架,是开放的和可扩展的。它为各个关键领域规定了一系列的基本接口,让程序员开发Java应用。Java 开发工具JDK,JDK 由一个标准类库和一组建立、测试及建立文档的 Java 实用程序组成。其核心Java API 是一些预定义的类库,开发人员需要用这些类来访问 Java 语言的功能。 Java API 包括一些重要的语言结构以及基本图形、网络和文件 I/O。一般来说, Java API 的非I/O部分对于运行 Java 的所有平台是相同的,而I/O部分则仅在通用 Java 环境中实现。4TCP/IP协议:TCP协议是网络通信的基石,对此,J
7、ava专门提供了Socket的类库,在其中抽象出TCP协议通信的常用方法,客户端,首先发送TCP请求的是客户端,客户端一般是服务(比如数据查询服务)的请求者。服务器,在接收到客户端的请求后(确保同客户端的通信信道建立)服务器会向客户端提供服务。服务器一般是服务的执行者,会向客户端返回服务执行的结果。为了实现客户端同服务器端的通信,客户端首先发送一个“SYN”数据包。如果服务器收到SYN标记,它将发回一个“SYN+ACK”数据包。接着,客户端为了表示收到了这个SYN+ACK信息,会向服务器发送一个最终确认信息(ACK包)。这种SYN,SYN+ACK,ACK的步骤被称为TCP连接建立时的“三次握手
8、”,在这之后,连接就建立起来了,这个连接将一直保持活动状态,直到超时或者任何一方发出一个FIN(结束)信号。这种通信模式也叫客户端/服务器(C/S)模式。ACK=1第一次握手,主机A向主机B发送连接请求第二次握手,主机B收到主机A的请求,向主机A回发一个确认,同时向主机A发送一个连接请求第三次握手,主机A收到主机B发送的数据包在向主机B发送一个确认连接主机A 主机BSYN=1,SEQ=三次握手协议5. 课程设计说明书:该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。服务器端具有建立侦听服务,转发聊天信息,响应用户下线,统计在线人数。客户端具有请求登陆,请求下线,发送接收群聊和
9、私聊信息,记事本,发送接收文件功能5.1 选题意义: 局域网聊天软件,除了能加强网络之间的信息沟通外,最主要的是可以将网站信息与聊天用户紧密联系在一起。通过网站信息向聊天用户群及时群发送,可以迅速吸引聊天用户群对网站的关注,从而加强网站的访问率与回头率。局域网聊天软件利用的是互联网线路,通过文字、语音、视频、文件的信息交流与互动,有效节省了沟通双方的时间与经济成本;局域网聊天软件不但成为人们的沟通工具,还成为了人们利用其进行电子商务、工作、学习等交流的平台,将日常办公的传统沟通方式替换,有效的减少办公费用的同时,较之更有效率百分之一。5.2 达到的目标:快速、方便的短信收发,同时满足个人和企业
10、基于手机短信沟通的需求。5.3 功能要求:发送信息,发送图片,发送文件,接收信息,接收图片,接收文件。发起语音对话,发起视频通讯。5.4 设计图如下:5.5 概要设计:5.6 详细设计:服务器端主要包括4个文件,它们的功能如下:1. Server.java:其主要功能为定义服务器端的界面,添加事件侦听与事件处理。调用serverRun类来实现服务器端对客户端的连接;调用Details类来实现服务器端用户上线与下线的侦听;用变长数组来记录用户列表。2. PortConf.java:是用户对服务器侦听端口进行修改配置的类。3. Objecting.java: 要传输某一类的对象,就要实现Seria
11、lizable接口, 就可以在网络上传输。4. ServerHelp.java:服务器端的帮助。客户端主要包括5个文件,它们的功能如下:1. LogIn.java:注册并登陆到服务器。2. Client.java:其主要功能为定义客户端的界面,添加事件侦听与事件处理。该类定义了connect()与disconnect()方法实现与服务器的连接和断开连接;调用ClientSocket类实现客户端消息的接收,然后转发到客户端的主界面上。3. ConnectConf.java:是用户对所要连接的服务器IP地址和端口的配置。4. NoteBook.java:记录重要的事情,并存在本地。5. UserH
12、elp.java:客户端的帮助信息。ChatFrame.javaSendNews.javaReceiveNews.java接收信息发送信息基本信息传送SendFileFrame.javaSendFileThread.javaFileJieshouThread.javaChatFrame.javaChatFrame.javaSendFileFrame.javaOutputStreamInputStream文件传送6程序源代码:public class ChatServer extends JFrame implements ActionListenerpublic static int port
13、 = 8888;/服务端的侦听端口ServerSocket serverSocket;/服务端SocketImage icon;/程序图标/建立菜单栏JMenuBar jMenuBar = new JMenuBar(); /建立菜单组JMenu serviceMenu = new JMenu ("服务(V)"); /建立菜单项JMenuItem portItem = new JMenuItem ("端口设置(P)");JMenuItem startItem = new JMenuItem ("启动服务(S)");JMenuItem s
14、topItem=new JMenuItem ("停止服务(T)");JMenuItem exitItem=new JMenuItem ("退出(X)");JMenu helpMenu=new JMenu ("帮助(H)");JMenuItem helpItem=new JMenuItem ("帮助(H)");/建立工具栏JToolBar toolBar = new JToolBar();/建立工具栏中的按钮组件JButton portSet;/启动服务端侦听JButton startServer;/启动服务端侦听J
15、Button stopServer;/关闭服务端侦听JButton exitButton;/退出按钮/框架的大小Dimension faceSize = new Dimension(400, 600);ServerListen listenThread;JPanel downPanel ;GridBagLayout girdBag;GridBagConstraints girdBagCon;/* * 服务端构造函数 */public ChatServer()init();/初始化程序/添加框架的关闭事件处理this.setDefaultCloseOperation(JFrame.EXIT_ON
16、_CLOSE);this.pack();/设置框架的大小this.setSize(faceSize);/设置运行时窗口的位置Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();this.setLocation( (int) (screenSize.width - faceSize.getWidth() / 2, (int) (screenSize.height - faceSize.getHeight() / 2);this.setResizable(false);this.setTitle("聊天室服
17、务端"); /设置标题/程序图标icon = getImage("icon.gif");this.setIconImage(icon); /设置程序图标show();public void init()Container contentPane = getContentPane();contentPane.setLayout(new BorderLayout();/添加菜单栏serviceMenu.add (portItem);serviceMenu.add (startItem);serviceMenu.add (stopItem);serviceMenu.ad
18、d (exitItem);jMenuBar.add (serviceMenu); helpMenu.add (helpItem);jMenuBar.add (helpMenu); setJMenuBar (jMenuBar);/初始化按钮portSet = new JButton("端口设置");startServer = new JButton("启动服务");stopServer = new JButton("停止服务" );exitButton = new JButton("退出" );/将按钮添加到工具栏toolBar.add(portSet);toolBar.addSeparator();/添加分隔栏toolBar.add(startServer);toolBar.add(stopServer);toolBar.addSeparator();/添加分隔栏toolBar.add(exitButton);contentPane.add(toolBar,BorderLayout.NORTH);/初始时,令停止
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东食品药品职业学院《商务英语函电与合同》2023-2024学年第一学期期末试卷
- 广东省外语艺术职业学院《通风空调A》2023-2024学年第一学期期末试卷
- 广东女子职业技术学院《现代设计技术》2023-2024学年第一学期期末试卷
- 七年级上册《1.2.4绝对值》课件与作业
- 广东茂名幼儿师范专科学校《测量学基础》2023-2024学年第一学期期末试卷
- 广东茂名健康职业学院《习思想》2023-2024学年第一学期期末试卷
- 五年级数学(小数乘法)计算题专项练习及答案汇编
- 大学生心理健康教育(兰州大学)学习通测试及答案
- 土木实习总结15篇
- 云南玉溪市2021高考英语优生自选练习(8)及答案
- 第12课《词四首》课件+2023-2024学年统编版语文九年级下册
- 《发电厂电气部分》考试题库
- 建筑施工安全生产包保责任实施方案
- 2024年R1快开门式压力容器操作证考试题库及答案
- 《数学物理方法》期末测试卷及答案
- 铁路工务劳动安全
- 直播电商年终总结
- 沪科版九年级物理下册教案全册
- PAS 2050:2011-商品和服务在生命周期内的温室气体排放评价规范(英文)
- 历史期中复习课件八年级上册复习课件(统编版)
- 空调供货方案
评论
0/150
提交评论