基于java的即时通信软件毕业设计
- 格式:doc
- 大小:692.00 KB
- 文档页数:47
毕业设计(论文)中文摘要毕业设计(论文)外文摘要目录1 引言 (1)1.1 课题的研究现状 (1)1.2 课题简介以及设计要求 (2)1.2.1课题简介 (2)1.2.2课题设计要求 (2)1.3 课题的调研 (2)1.4 可行性分析 (2)1.4.1 可行性分析的目的 (2)1.4.2 技术可行性分析 (3)1.4.3 经济可行性分析 (3)1.4.4 操作可行性分析 (3)1.4.5 法律可行性分析 (4)1.5 论文各章简介 (4)2 系统需求分析 (5)2.1 业务流分析 (5)2.2概念结构设计 (5)2.3 数据流分析 (5)2.4 数据字典 (6)2.4.1数据字典 (6)2.4.2处理逻辑说明 (7)3 系统总体设计 (9)3.1 系统开发的原则 (9)3.1.1 面向用户的观点 (9)3.1.2 严格按阶段进行 (9)3.1.3 采用系统的观点处理 (9)3.1.4采用模块化设计方法 (9)3.1.5 整个系统的设计主要采用快速原形法 (9)3.2系统总体功能结构设计 (10)3.2.1 系统代码设计说明 (10)3.2.2 系统设计技术说明 (10)3.2.3 系统总体功能结构 (12)3.3 系统数据库设计 (13)3.4开发环境设计与运行环境设计 (14)3.4.1 开发环境设计 (14)3.4.2 运行环境设计 (15)4 服务器模块设计 (15)4.1 主服务器类设计 (15)4.2 多线程ServerThread类的设计 (16)4.3 用户注册模块 (17)4.4 登录验证模块设计 (17)4.4.1登录线程设计 (17)4.4.2 通知好友上线模块 (18)4.5 好友管理模块 (19)4.5.1 查找好友模块 (19)4.5.2 查看好友资料模块 (19)4.5.3 直接添加好友模块 (19)4.5.4 添加好友模块 (19)4.5.5 添加好友应答模块 (21)4.5.6 删除好友模块 (22)4.6 退出下线模块 (22)5 客户端模块设计 (23)5.1新用户注册模块 (23)5.1.1 注册流程 (23)5.1.2 注册事件监听流程 (23)5.2 用户登录模块 (25)5.2.1 监听登录事件 (26)5.2.2 界面设计 (27)5.2.3 设计过程中遇到的问题 (28)5.3 消息通信模块 (29)5.3.1 发送消息 (30)5.3.2 监听用户操作消息 (32)5.3.3 接收消息 (35)5.3.4 发送文件和接收文件模块 (36)5.4 好友管理模块 (37)5.4.1 查找好友 (37)5.4.2 添加好友 (38)5.4.3 查看资料 (39)5.4.4 删除好友 (39)6用户手册 (40)6.1 系统的运行环境 (40)6.1.1 硬件要求 (40)6.1.2 软件环境 (40)6.2 系统的功能简介 (40)6.3 系统的运行和操作指南 (40)7 系统特色与不足 (42)7.1 系统特色 (42)7.2 系统不足 (42)7.3 设计收获和心得 (42)结论 (44)致谢 (45)参考文献 (46)1 引言1.1 课题的研究现状网络通信在当今信息社会中起着不可或缺的作用,人们可以利用网络通信技术进行即时的信息交流。
摘要随着互联网的快速发展,网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐.目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。
该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。
前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。
后者通过与服务器建立连接,来进行客户端与客户端的信息交流。
其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。
开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。
在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。
经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和java 语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统关键词:局域网聊天 socket javaAbstractAlong with the fast development of Internet,the network chating tool has already become one kind of important communication tools and received more and more web cams favor. At present, many extremely good chating tools have appeared . for example,Netmeeting, QQ,MSN—Messager and so on. This system development mainly includes two aspects of the server procedure of the network chat and the customer procedure of the network chat。
计算机科学与技术专业毕业设计(论文)选题资料计算机科学与技术专业研究方向主要包括:计算机应用技术、软件工程、通信工程、网络工程、数据库与信息系统等。
本专业本科学生选题可以参考所列研究方向结合自己工作实际合理选题,开展论文写作。
方向一、计算机应用技术计算机应用技术方向论文可以写成计算机项目设计、项目开发及应用型、解决方案型、应用效果展示型、计算机理论应用型等,主要围绕计算机软、硬件系统的研究、设计、开发、应用等领域。
写作过程中注意选题的可行性,选择自己熟悉领域,考虑选题大小难易程度,合理选择切入点。
软件工程方向论文可以写成软件系统需求分析、设计与开发、项目协作、软件项目开发及应用、软件系统效果及应用展示型等,主要围绕计算机软件设计开发理论、软件工程、软件应用等领域。
写作过程中注意选题的可行性,选择自己熟悉领域,考虑选题大小难易程度,合理选择切入点。
通信工程方向论文可以写成通信领域内网络、系统、设备以及信息交换、传输、处理方面的科学研究、工程设计、运行维护等方面,主要围绕通信系统和通信网方面的基础理论、组成原理和设计方法等领域。
写作过程中注意选题的可行性,选择自己熟悉领域,考虑选题大小难易程度,合理选择切入点。
方向四、网络工程网络方向论文可以写成网络工程相关基本理论与方法、计算机网络系统设计与开发、网络技术、网络安全等方面,主要围绕局域网系统设计、广域网系统设计、网络工程实践项目、网络体系结构设计等领域。
写作过程中注意选题的可行性,选择自己熟悉领域,考虑选题大小难易程度,合理选择切入点。
方向五、数据库与信息系统数据库与信息系统方向论文可以写成数据库系统设计与开发、数据管理与数据处理、数据集成、数据检索等方面,主要围绕数据模型设计、数据研究与分析、数据效果查询与展示等领域。
写作过程中注意选题的可行性,选择自己熟悉领域,考虑选题大小难易程度,合理选择切入点。
赠送以下资料XX学院本科生毕业论文(设计)开题报告论文(设计)主要内容(提纲):一、引言:(一)教学情境的定义及语文课堂教学情境的定义二、语文课堂教学情境的作用三、创设小学语文课堂教学情境的对策(一)小学语文课堂教学情境特征(二)小学语文课堂教学情境原则(三)小学语文课堂教学情境方法1.生动讲述法2.游戏法3.实物演示4.图画5.音乐6.课件展示7.实际生活四、创建情境需要注意的问题拟研究的主要问题、重点和难点主要问题:通过了解小学语文课堂教学情境的作用、特征和原则之后,怎样去创设有效的小学语文课堂教学的情境。
石家庄城市职业学院毕业设计(论文)题目:基于局域网聊天工具的设计与开发系(部)电子信息技术系专业班级软件技术学号09xk46045学生姓名王丽丽指导教师吕晓华职称讲师2011年11 月4 日基于局域网聊天工具的设计与开发摘要:在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。
基于Java 网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。
一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。
本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。
系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。
使用JAVA语言编写,开发工具采用Eclipse。
服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。
大大增强了程序对服务器资源的利用。
聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。
关键字:多线程客户机/服务器 JAVA Socket Eclipse TCP/IP目录引言 (1)第一章概述 ...................................................................................................... .. (1)1.1 Java语言........................................................................... . (1)1.1.1 Java的发展历史 ......................................................................... .11.1.2 Java的特点 ................................................................................. ..11.1.3 Java与Internet........................................................................ .21.2 Socket编程 .............................................................................................. .21.2.1 关于TCP/IP协议........................................................................ .21.2.2 服务器和客户机 (3)第二章需求分析 (3)2.1可行性研究 (3)2.1.1 可行性分析 (3)2.1.2系统功能需求 (3)2.1.3 系统性能需求 (4)2.1.4 系统运行需求 (4)2.2 数据流图 (4)2.2.1 顶层数据流图 (4)2.2.2 一层数据流图 (5)2.2.3 二层数据流图 (5)第三章概要设计 (6)3.1系统实现原理 (7)3.2 系统实现层次图 (7)3.3各模块详细功能 (7)3.3.1服务器端结构 (7)3.3.2 客户端结构 (8)致谢 (8)参考文献 (9)目录基于局域网聊天工具的设计与开发引言目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN(新版改名为Live Messenger)以及跨平台Gaim等。
Android即时通信系统设计与实现(代码如下):1,登录界面(IP地址):package Nclient;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditT ext;public class LoginActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.login);Button btnLink = (Button) findViewById(R.id.btnLink);final EditT ext etIPaddr = (EditT ext) findViewById(R.id.etIPaddr);final Intent intent = new Intent();btnLink.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){intent.setClass(LoginActivity.this, ClientActivity.class);//清除堆栈中其他Activityintent.putExtra("IPaddr", etIPaddr.getT ext().toString());intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);LoginActivity.this.finish();startActivity(intent);}});}}2,客户端(Android):package Nclient;// 123456import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintStream;import .Socket;import .UnknownHostException;import java.util.Date;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.view.View;import android.view.View.OnClickListener; import android.widget.Button;import android.widget.EditT ext;import android.widget.T oast;public class ClientActivity extends Activity {Socket socket;BufferedReader br;PrintStream ps;Button btnSend;Button btnExit;Button btnFile;EditT ext etSend;EditT ext etReceive;MyHandler handle;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.client);Intent intent = getIntent();String IPaddr = new String(intent.getStringExtra("IPaddr"));etReceive = (EditT ext) findViewById(R.id.etReceive);etSend = (EditT ext) findViewById(R.id.etSend);btnSend = (Button) findViewById(R.id.btnSend);btnExit = (Button) findViewById(R.id.btnExit);btnFile=(Button)findViewById(R.id.btnFile);try{socket = new Socket(IPaddr, 9998);if (socket != null)T oast.makeT ext(ClientActivity.this, "成功连接到服务端", T oast.LENGTH_LONG).show();// 创建输入流InputStream ins = socket.getInputStream();InputStreamReader isr = new InputStreamReader(ins, "gbk");br = new BufferedReader(isr);// 创建输出流OutputStream os = socket.getOutputStream();ps = new PrintStream(os);btnSend.setOnClickListener(new RcbtnOnclickListener());handle = new MyHandler();new Thread(new Receive()).start();// handle.post(new Receive());} catch (UnknownHostException e){e.printStackT race();} catch (IOException e){e.printStackT race();}btnFile.setOnClickListener(new OnClickListener() {public void onClick(View v)// 为文件按钮注册按钮监听{System.out.println("benfile");}});btnExit.setOnClickListener(new OnClickListener() {public void onClick(View v)// 为退出按钮注册按钮监听{System.exit(0);// 此方法可以结束线程,但无法完全退出// ClientActivity.this.finish();//此方法无法结束线程// android.os.Process.killProcess(android.os.Process.myPid());// 此方法可以结束线程,但也无法也完全退出}});// etReceive.setOnKeyListener(new )}// 发送消息按钮监听class RcbtnOnclickListener implements OnClickListener {@Overridepublic void onClick(View v){Date now = new Date();String time = timeFormat(now.getHours()) + ":"+ timeFormat(now.getMinutes()) + ":" + timeFormat(now.getSeconds());String message = etSend.getT ext().toS tring();if (!(message.equals(""))){message = time + " : " + message;etReceive.append("<<< " + message + "\n");ps.println(message);ps.flush();etSend.setT ext("");T oast.makeT ext(ClientActivity.this, "消息已发送", T oast.LENGTH_LONG).show();}else T oast.makeT ext(ClientActivity.this, "消息为空", T oast.LENGTH_LONG).show();}}// 定义消息处理方法class MyHandler extends Handler {public MyHandler(){}public MyHandler(Looper L){super(L);}// 子类必须重写此方法,接受数据@Overridepublic void handleMessage(Message msg){super.handleMessage(msg);Bundle b = msg.getData();String receive = b.getString("receive");if (!(receive.equals(""))) etReceive.append(">>> " + receive + "\n");// else etReceive.append(" ");}}// 创建发送按键的监听器class Receive implements Runnable {@Overridepublic void run(){String receive = "";try{if (br.ready())try{receive = new String(br.readLine());} catch (IOException e){receive = "服务端已停止,请退出";}} catch (IOException e){receive = "服务端已停止,请退出";}Message msg = new Message();Bundle b = new Bundle();b.putString("receive", receive);// b.putString("receive", "刷新");msg.setData(b);ClientActivity.this.handle.handleMessage(msg);handle.postDelayed(new Receive(), 300);}}//发送文件按钮监听/*----------* -----------* -----------class btnFileListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSystem.out.println("发送文件监听");}}*//* ==========转换时间格式========== */ public String timeFormat(int time){if (time < 10) return "0" + time;else return "" + time;}}3,服务端(Java):package server;import java.awt.*;import java.awt.event.*;import javax.swing.JFrame;import java.io.*;import .ServerSocket;import .Socket;import java.util.Date;import javax.swing.*;public class Server extends JFrame implements ActionListener {private static final long serialV ersionUID = 1L;JPanel panel1 = new JPanel();JPanel panel2 = new JPanel();JPanel panel3 = new JPanel();JButton btnSend = new JButton("发送");JButton btnExit = new JButton("退出");T extArea taSend = new T extArea("", 4, 58, T extArea.SCROLLBARS_NONE); T extArea taReceive = new T extArea("", 15, 58,T extArea.SCROLLBARS_VERTICAL_ONLY);ServerSocket ss = null;Socket socket = new Socket();BufferedReader br;PrintStream ps;public static void main(S tring args[]){new Server();}public Server(){btnSend.addActionListener(this);btnExit.addActionListener(this);btnSend.setMnemonic('1');btnExit.setMnemonic('2');btnSend.setFocusable(false);btnExit.setFocusable(false);setTitle("服务端");setLayout(new FlowLayout());setSize(450, 420);setResizable(false);panel1.add(taReceive);panel2.add(taSend);panel3.add(btnSend, BorderLayout.WEST);panel3.add(btnExit, BorderLayout.EAST);// taReceive.setSize(590, 320);// taSend.setSize(590, 150);// taReceive.setEnabled(false);taReceive.setFocusable(false);taSend.setEnabled(true);add(panel1, BorderLayout.NORTH);add(panel2, BorderLayout.SOUTH);add(panel3);// 关闭窗口事件的监听及处理this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);}});setBackground(Color.GRAY);setLocation(300, 120);setVisible(true);while (true){try{if ((ss = new ServerSocket(9998)) != null){// taReceive.append("系统提示:已打开监听端口\n");break;}} catch (IOException e){e.printStackT race();}}while (true){try{if ((socket = ss.accept()) != null){taReceive.append("系统提示:客户端已连接\n");// 创建输入流InputStream ins = socket.getInputStream();InputStreamReader isr = new InputStreamReader(ins, "utf-8");// 此处注意一定要加上解码方式,否则汉字会出现乱码// 可用System.getProperty("file.encoding")方法获得默认编码方式br = new BufferedReader(isr);// 创建输出流OutputStream os = socket.getOutputStream();ps = new PrintStream(os);break;}} catch (IOException e){e.printStackT race();}}String receive = null;try{while (true){try{receive = br.readLine();} catch (IOException ex){ex.printStackT race();}// receive = new String(receive.getBytes("gb2312"));if (!(receive.equals(""))) taReceive.append(">>>> " + receive + "\n");}} catch (Exception ie){System.out.println("客户端已断开");try{for (int i = 3; i > 0; i--){taReceive.append("客户端已断开连接," + i + "秒后自动退出\n");Thread.sleep(1000);}System.exit(0);} catch (InterruptedException e){e.printStackT race();}}}@Overridepublic void actionPerformed(ActionEvent e){if (e.getActionCommand() == "退出"){System.out.print("服务端已停止");dispose();System.exit(0);} else this.sendMessage(taSend.getT ext().toString());}@SuppressWarnings("deprecation")private void sendMessage(String message){Date now = new Date();String time = timeFormat(now.getHours()) + ":"+ timeFormat(now.getMinutes()) + ":" + timeFormat(now.getSeconds()); if (!(message.isEmpty())){message = time + " : " + message + "\n";taReceive.append("<<<< " + message);// message = new String(message.getBytes("gbk"),"gb2312");// 发送端转码在此处不可行,系统在发送时会默认编码添加行结束符if (ps.checkError()) taReceive.append("系统提示:客户端未连接");else{ps.println(message);ps.flush();taSend.setT ext("");}} else taReceive.append("系统提示:不能发送空消息");}// 将时间格式化成常用格式public String timeFormat(int time) {if (time < 10) return "0" + time;else return "" + time;}}。
毕业设计说明书Java聊天室系统的设计与实现2017 年 5 月 17日Java网络聊天室系统的设计与实现摘要:计算机从出现到现在有了飞速的发展,现阶段的计算机已经不单单是用于进行运算的独立的个体了,跟随计算机一同发展的还有互联网技术,经过了长久的发展,互联网技术有了日新月异的发展,它的发展速度和计算机的发展速度一样的恐怖,从出现一直到现在,它已经在人们的生活的各个方面发挥着自己的作用,而且是不可替代的作用。
因为计算机发展到现在已经成为一种廉价的生活物品,可以预想到未来人们都会使用计算机,上网的人也会逐渐增多,会有不断的人完善和更新出更好更棒的互联网服务,来提高自己的生活水平。
我国近几年经济和社会在不断的发展,互联网也得到了广大的支持,网络更是已经融入了广大人民的日常生活。
在计算机编程方面,互联网软件开发逐步转向以java为首的面向对象的编程技术,传统的面向过程的编程技术已经逐渐退出了历史的舞台,java正以不可思议的速度发展。
人们日常的生活,教育,网银,网购,面对面的网上视频,以及现在逐渐被大众接受的网络游戏都在使用面向对象的技术。
而且java自身的优势以及特点能够真正减少了企业的开发成本和开发人员的开发时间和难度。
在以前,人们获取信息的方式十分单一,通过电视,广播,信件以及人们的口头相传,这种方式效率十分的底下,得到的信息也很局限。
现阶段上网查找成为人们获取信息的主要途径,它具有快速,方便,以及传递的特点。
所以人们对网上的即时面对面聊天产生了需要。
一个界面清新,简单,并且高效的网络聊天室一定会受到大众的喜爱。
为了这个目的,构建此聊天系统。
本文将介绍网络聊天室程序的设计与完成。
关键词:网络聊天室;Java;客户机/服务器;Socket;Java chat room system design and implementation Abstract:With the development of Internet technology, network technology is developing very fast in the area of computer technology, one of emerged from it until now, it in many aspects, such as politics, economy, life play an irreplaceable role. With the growing popularity of the computer and popularization, the future will be more and more people use the Internet, enjoy the constantly update and improve the network services, to improve the level of their work lives. With the development of our economy and the popularization of the Internet, the Internet technology is also used more in the daily life of people. In application development and process oriented programming technology is gradually replaced by object-oriented programming technology, the computer software design and development has become the dominant, especially in the development of network technology, the object-oriented Java language programming is development rapidly in explosive. Remote education, online banking, shopping online, video online, and online games are all using object-oriented Java technology. And Java portable features enable Java programs to be compiled into bytecode that is not relevant to the platform, which enables Java programs to run on machines with Java interpreters. It really reduces the development cost of the enterprise and the development time and difficulty of the developer.In today's society, people's lives have long been inseparable from the Internet. In the future, the life and work of society will depend more on the development of digital technology, more and more networked, digital, electronic and virtualized. E-commerce is also becoming more and more relevant with the development of the Internet and people's life. The use of the development of the Internet and the current situation and development trend, can believe network technology step by step change our work and lifestyle, and social values will all change of step by step.In today's rapid development of network, the query on the Internet become people to quickly get published, and transfer information important channel, it in many aspects, such as people, political economy, life play an important role. Traditional letter-writing methods do not satisfy people's immediate demand for information. Thus, can chat face to face on the Internet become important human needs, a popular chat tools should be: interface and pure and fresh, simple operation, humanity, saving system resources. For this purpose, build the chat system.This paper completes the development of an online chat room program through Java's sockets. This article introduces the design and completion of network chat room program.Key words:chat rooms; the Java; Client / Server;the Socket;目录摘要 (I)Abstract ................................................ 错误!未定义书签。
即时通讯软件摘要关于即时通讯系统(Instant Messaging System)的研究目前是互联网中一个热门方向,尤其是关于企业级的即时通讯系统更为国内外应用的热点。
企业版的即时通讯软件的诞生,给企业的管理带来了新的思路和手段。
推动了企业工作效率的提高,办公费用的降低,引起了工程应用领域的研究热潮。
即时通信中最基本的功能就是通过计算机之间的文本数据的互换的形式实现思想的交流和沟通,它的优点是方便快捷,为人们之间创建了一种新型的、廉价的、快速的、简便的沟通方式。
目前即时通讯系统不仅是娱乐聊天工具,更是影响着局域网内部的管理及其交流方式。
局域网即时通讯系统为企业员工之间的交流又提供了一个新的手段,它是一个可以自定义的网络信息传递软件,能即时发送信息。
本即时通讯软件系统采用了客户机/服务器(C/S)模式,软件的主体开发环境选择的是Visual Basic 6.0(SP6),搭配的是ADO技术调用Access数据库。
关键词:即时通讯软件系统服务器客户端局域网 ADO技术Visual BasicInstant Messaging SoftwareNing Li(School of mathematics, physics and information, Zhejiang Ocean University 316004)AbstractThe research about the Instant Messaging System is a hot direction of the internet industry at present, it is especially a focus studied both at home and abroad even more about the instant messaging system of enterprise customer. The birth of the instant messaging software of the enterprise edition has brought the new thoughts and means to management of enterprises. Having promoted the improvement of enterprise's working efficiency, the reducing of the official bossiness cost, has caused the research upsurge of the project application.The most fundamental function of IM is the data exchange between the computer. IM's merit is to rapid , to have established one kind between conduct conveniently to link way up late-model , low-priced , speedy , simple and convenient. At present,IM is an entertainment chat implement not only , also is the internal administration being affecting a local area network and their exchange way.LAN IM has provided a new means to the exchange between enterprise employee. One can receive and send imformation immediately.The instant messaging system has adopted the client/server (C/S) mode. The software exploitation environment is Visual Basic 6.0(SP6).The data base mode is Access.Key words:Instant Messaging System Server Client Local Area Network(LAN) ADO Visual Basic目录摘要 (I)Abstract ............................................................................................................................. I I 1概述 . (1)1.1即时通讯软件的发展历程 (1)1.2 国内外即时通讯研究的现状 (1)1.3 本文的研究内容和意义 (1)2系统设计与选型 (3)2.1了解用户需求 (3)2.2软件工具的选型 (4)2.3服务器模块的功能分析 (4)2.4客户端模块的功能分析 (4)3数据环境的设计 (6)3.1服务器端Users.mdb的结构 (6)3.2客户端Data.Mdb的结构 (7)3.3客户端Users.ini的结构 (7)4网络协议的设计 (8)4.1网络协议概述 (8)4.2网络协议的设计 (8)5服务器模块的创建 (10)5.1服务器端的主窗体frmServer (10)5.2服务器的初始化 (11)5.3接受客户端的连接 (12)5.4服务器与客户端的数据交互 (12)5.5客户端断开连接 (13)5.6服务器断开同客户端的连接 (13)6客户端功能模块的创建 (14)6.1创建主模块MainModule (14)6.2“登陆”窗体frmStep1 (14)6.3“注册向导1”窗体frmStep2 (15)6.4“注册向导2”窗体frmInformation (15)6.5“客户端”主体窗frmClient (17)6.6内存索引模块MemoryTree (23)6.7消息发送窗体frmChat (24)6.8新消息处理窗体frmNewMessage (25)6.9“历史消息”窗体frmHistory (26)7总结 (28)参考文献 (29)1概述这是一个信息高度膨胀的时代,网络已经融入我们的生活,它改变着我们的生活,也改变着我们的交流方式。
1111
基于MQTT的毕业设计是一种利用MQTT(Message Queuing Telemetry Transport)协议进行通信的项目。
MQTT是一种轻量级的消息传递协议,它在物联网领域广泛应用,并具有可靠性、低功耗和高效传输等特点。
在这个毕业设计中,你可以使用MQTT协议作为通信协议,设计一种基于物联网的系统。
这个系统可以实现设备之间的实时通信以及数据传输。
你可以通过以下步骤进行设计:
1. 利用MQTT协议在局域网内建立一个消息代理服务器,作为通信的中介。
2. 使用MQTT客户端API在设备端和服务端之间建立连接。
设备端可以是传感器、开关或其他物联网设备,而服务端可以是手机应用程序、Web应用程序或服务器。
3. 设计一种消息传递模式,使得设备端可以发布和订阅特定的主题。
通过这种方式,设备可以向服务器发布数据,服务器可以订阅这些数据并进行相应的处理。
4. 考虑系统的安全性,使用MQTT的安全机制,如用户名/密码验证、TLS/SSL加密等,来保护数据的传输和设备的身份验证。
最后,你可以根据具体的应用需求,进行系统的功能设计和实现。
例如,可以设计一个智能家居系统,通过MQTT实现家庭设备之间的通信和控制;或者设计一个环境监测系统,通过MQTT传输传感器数据到服务器进行分析和处理。
总之,基于MQTT的毕业设计可以帮助你深入了解物联网通信技术和协议,并通过实际项目的设计与实现,提升你的技术能力和解决问题的能力。
同时,这也有助于推动物联网技术的发展,为人们提供更加智能、便捷和安全的生活环境。
本科生毕业论文(设计)论文(设计)题目:J 即时通讯系统的设计与实现学院:电子信息工程学院专业:网络工程J 即时通讯系统的设计与实现[摘要]运用Internet和Java开发技术,采用C/S模式,建立一个基于应用的即时通讯系统。
本系统实现了用户注册,用户登陆,分组管理,好友管理,查询用户,用户即时通讯,查看聊天记录等功能。
用户注册是通过系统来添加新的用户;用户登录用来验证用户的信息是否合法;分组管理功能主要是对分组的管理,如添加分组、删除分组等;好友管理功能主要是对好友的管理,如添加好友、删除好友等;查询用户是查询所有已注册的用户以便加为好友进行通讯;用户即时通讯使成为好友的双方可以即时在线交流;查看聊天记录保存了与好友通讯的所有记录。
[关键词]即时通讯系统;C/S模式;TCP;UDPJ instant messaging system design and ImplementationAbstract:The use of Internet and Java development technologies, using C / S mode, a real-time communication system based on application. The system implements user registration, user login, group administration, friends manage, query user, instant messaging, view the chat history. User registration is through the system to add new users; user login used to authenticate the user's information is legitimate; group management functions mainly for the management of groups, such as adding a group, delete group, etc.; friends management functions mainly for friends management, such as adding friends, remove friends, etc.; query the user is the query to all registered users to add as friends to communicate; users to instant messaging to become friends of the two sides can exchange real-time online; view chat history with a good save friends of the communication of all records.Key words:Instant messaging system; C / S mode; TCP; UDP目录1 绪论41.1项目背景41.2国外研究现状51.3预期目标和经济效益51.4课题简要介绍61.5系统创新点62 需求分析72.1功能需求72.1.1 用户管理72.1.2 分组管理72.1.3 好友管理72.1.4 即时通讯82.2通讯模型的特点82.2.1 适用性82.2.2 扩展性92.3可行性研究92.3.1 技术可行性分析92.3.2 不确定性分析92.3.3 分析结论92.4运行环境103 概要设计103.1框架设计103.2拓扑结构103.3功能设计133.2.1 用户注册模块133.2.2 用户登录模块133.2.3分组管理模块143.2.4 好友管理模块143.2.5 查询用户模块153.2.6 即时通讯模块153.2.7 聊天记录模块153.4设计原则与一般要求154 系统设计164.1模块设计164.2即时通讯系统关系型数据库的实现164.2.1 数据库分析174.2.2 数据库概念设计174.2.3 数据库逻辑结构设计185 系统实现185.1注册模块185.2登录模块205.3分组管理模块错误!未定义书签。
毕业设计(论文)任务书
设计(论文)题目:
基于JAVA的网络即时通讯系统的设计与实现
学生姓名:
包磊学号:
1221113025
专业:
M12软件工程
所在学院:
龙蟠学院
指导教师:
钱海忠
职称:
发任务书日期:2014年10月10日
任务书填写要求
1.毕业设计(论文)任务书由指导教师根据各课题的具体情况填写,经学生所在专业的负责人审查、系(院)领导签字后生效。
此任务书应在毕业设计(论文)开始前一周内填好并发给学生。
2.任务书内容必须用黑墨水笔工整书写,不得涂改或潦草书写;或者按教务处统一设计的电子文档标准格式(可从教务处网页上下载)打印,要求正文小4号宋体,1.5倍行距,禁止打印在其它纸上剪贴。
3.任务书内填写的内容,必须和学生毕业设计(论文)完成的情况相一致,若有变更,应当经过所在专业及系(院)主管领导审批后方可重新填写。
4.任务书内有关“学院”、“专业”等名称的填写,应写中文全称,不能写数字代码。
学生的“学号”要写全号,不能只写最后2位或1位数字。
5.任务书内“主要参考文献”的填写,应按照《金陵科技学院本科毕业设计(论文)撰写规范》的要求书写。
6.有关年月日等日期的填写,应当按照国标GB/T 7408—94《数据元和交换格式、信息交换、日期和时间表示法》规定的要求,一律用阿拉伯数字书写。
如“2002年4月2日”或“2002-04-02”。
毕业设计(论文)任务书
毕业设计(论文)任务书
毕业设计(论文)任务书。
基于java的即时通信软件毕业设计目录第一章绪论 (1)1.1 引言 (1)1.2 课题研究背景 (1)1.3 系统实现的关键技术 (2)1.4 本文工作及容安排 (3)第二章系统的需求分析 (5)2.1 项目设计的需求描述 (5)2.2 服务器端需求 (5)2.3客户端需求 (5)2.4 对于发送的消息的一些协议需求 (5)第三章系统设计 (7)3.1 软件设计流程 (7)3.2 即时聊天系统的实施原理 (7)3.2.1 工作方式和技术原理 (7)3.2.2 通讯方式 (8)3.3 功能模块划分 (9)3.3.1 服务器端 (9)3.3.2 客户端 (9)第四章数据库概要设计 (11)4.1 系统实体及实体关系图 (11)4.2 用户表 (12)4.3 好友表(friends) (12)4.4 在线状态表(logtype) (13)4.5 登陆表 (13)4.6 离线信息表 (13)第五章详细设计 (15)5.1 服务器端的设计与实现 (15)5.2 用户注册模块 (16)5.3 登陆模块 (17)5.3.1登录模型图 (17)5.3.2登录验证 (17)5.4 添加好友、删除好友、修改个人资料模块 (20)5.5 发送和接收消息模块 (21)5.5.1 聊天流程 (21)5.5.2发送和接收消息 (22)5.6 关闭客户端 (23)第六章系统测试 (25)6.1 系统测试案例 (25)6.2 测试结果和分析 (25)第七章总结与展望 (29)参考文献 (30)致谢....................................... 错误!未定义书签。
附件 (31)第一章绪论1.1 引言随着科学技术的发展,人类目前已经处于信息时代。
人和人之间的信息交流具有了多种途径。
不仅可以面对面的直接交流,还可以借助于一些先进的工具如、网络等实现远程交流。
人们最为熟悉的QQ就是实现远程交流的应用典。
针对企业的专业化即时通讯也迅速成长,具备安全性和多用途的互动办公通讯软件平台随之诞生,它们大都集成文字、声音、视频、屏幕、即时、文件共享与下载的诸多功能,能满足用户的各种需要。
并且即时通讯技术有将无线通讯融入计算机网络的趋势,其前景是非常光明的。
本课题研究的是支持部网络交流的系统——网络即时通讯系统。
1.2 课题研究背景即时通讯系统是一种非常便捷的网络通讯技术,利用互联网建立起网络虚拟环境,通过计算机键盘或无线设备在网络上进行实时信息交流,成为一种提供公共通讯、商务通讯及商务合作的新媒介,同时也弥补了传统通讯形式的不足,尤其是电子及语音通信方面的不足。
即时通讯工具在实现传输视频与音频信息,使协作成员可以远距离进行直观、真实的文字交流的同时,利用多媒体的技术,它还可以帮助使用者对工作中各种信息进行处理。
随着即时通信普及,全球即时通信用户的数量也不断增长。
目前即时聊天系统种类众多,功能也较为齐全,但MSN、QQ等公共消息系统,由于聊天对象及容的不可控,若在企业部使用,可能会降低工作效率。
本文所研究的即时通讯系统的应用目标定位于企业部网络,将自己的服务器端安装在企业,并且人员的创建是由系统管理员来完成,因此很好的解决企业或单位的信息沟通及协同问题,提高工作效率。
在该系统中,企业部员工可以利用该通讯系统随时随地发送文字消息,系统包括客户端程序和服务器端程序,支持局域网和Internet。
企业部员工之间可以在部网覆盖的任何地点、任何时间进行即时交流,帮助实现企业部协同工作。
即时通讯带给了更大的互动性,人们在交流彼此的看法、意见时,发现采用你来我往的方式达到的效果最为明显。
这就体现了互动性。
通过使用及时通讯系统,大家不需要借助其它额外的工具,就可以在线实时地交流工作,即时通信软件是网络软件的一个重要应用,构造的成本低、实时性好、网上交流平台便捷的特点决定了它的普及性,使其成为了在互联网上和他人联系的重要方式,应用于企事业单位部的即时通讯软件,可以推动政府机构、大型事业单位信息化的建设!因此开发该类型即时通讯软件也就具有重要的意义。
1.3 系统实现的关键技术(1) 系统开发语言选择经过认真的讨论分析,最终决定选择纯面向对象的Java语言来完成本项目的设计和实现,下面对Java语言作简要介绍。
Java是一种简单、多线程、安全、容易适用、可移置、面向对象、高性能的语言。
具有以下特点:面向对象:面向对象技术可以提高模块化程度和重复使用率,缩短软件开发时间降低开发成本。
安全性:Java提供了许多安全机制,是一种能应用于网络和分布环境下的程序设计语言。
多线程:Java具备建的多线程功能使各线程并发、独立执行提高系统的运行效率。
平台独立:平台独立是指程序不受操作平台限制可以应用于各种平台。
Java源程序经过编译后能够生成字节码文件,字节码和具体的计算机无关。
计算机安装能解释执行字节码的JVM就能执行字节码文件实现了Java的平台独立性。
执行效率: Java程序的开发通常需要经过编写源程序、编译生成字节码和运行三个过程。
这一编译过程同C/C++的编译有些不同,C编译器编译时,该代码是为在某一特定硬件平台运行而形成的,在编译过程中,编译程序通过查表将所有对符号的引用转换为相应的存偏移量,以保证程序运行。
而Java编译器却不将对方法和变量的引用编译为数值引用,也不确定程序执行过程中的存布局,而是将这些符号引用信息保留在字节码中,由解释器在运行过程中创立存布局,然后再通过查表来确定一个方法所在的地址。
Java应用程序的开发周期包括编译、下载、解释和执行几个部分。
这样就有效的保证了Java的运行效率。
(2) 系统架构经过分析,我采用的软件架构是C/S架构, C/S就是指客户机/服务器模式,客户机向服务器发出数据请求,服务器将数据进行计算,计算完毕后,将计算结果返回给服务器,形成客户端和服务器之间的交互。
具体的讲,就是在主机终端模式中,把原来全部集中在主机部分的任务一分为二。
一部分是仍然保留在主机上的负责集中处理和汇总运算,成为服务器;而另一部分是下放到终端的部分,主要负责为用户提供友好的交互界面,称为客户机。
相对于以前的模式,C/S模式最大的改进是不再把所有软件都装进一台计算机,而是把应用系统分成两个不同的角色和两个不同的地位,一般在运算能力较强的计算机上安装服务器端程序,而在一般的PC上安装客户机程序,这样就可以把主机端的一部分工作放在客户机端完成,从而减轻了主机的负担,也增加了系统对用户的响应速度和响应能力,从而提高工作效率。
这种模式的优点充分利用了客户机的性能,使计算能力大大提高;另外,由于客户机和服务器之间的通讯是通过网络协议进行的,是一种逻辑的联系,因此在物理上客户机和服务器两端是易于扩充的。
(3) 信息通信技术本系统实现信息通信主要是用Socket来实现的,Socket是网络编程中最常见的客户/服务器模式。
可以想象一条虚拟的电缆工作在两台计算机之间,两台计算机都有一个Socket,也就是端口,电缆插在两台计算机的Socket上,一台计算机上的Socket同另一台计算机通话创建一个通信信道,我们可以利用这个信道在两台机器之间发送数据。
用该模式编程时,服务器端有一个进程或多个进程在指定的端口等待客户来连接,一旦连接成功,便按设计的数据交换方法和格式进行数据传输。
客户端向服务器端提出连接请求,连接之后进行通信。
1.4 本文工作及容安排本文主要是通过java语言以及局域网实现一个QQ聊天系统。
第一章介绍了论文的课题背景,阐述了课题的目的与意义,概述了项目设计实现所要采用的一些关键技术;第二章对系统的需求进行分析,主要包括即时聊天消息的功能需求,即时消息的协议需求,即时信息加密和鉴别等通信息安全方面的需求;第三章介绍了系统设计,即时聊天系统的实施原理,软件设计流程,功能模块划分;第四章介绍了数据库的概要设计;第五章详细设计,服务器端的设计与实现,注册处理模块,客户端的设计与实现,以及聊天信息发送与接收;最后一章对本文所做的工作进行全面的总结,并指出了工作中的不足。
第二章系统的需求分析2.1 项目设计的需求描述设计一个基于JAVA的网络即时通信系统,在通用计算机网络上实现信息传递,包括基本的文本消息传递,实时获取联系人状态,对常用联系人进行管理等。
主要考虑以下基本功能,注册并登录服务器,验证用户,获得用户列表,用户运行客户端程序后,服务器端程序在局域网上运行,与其他用户进行点对点的实时消息通信服务。
2.2 服务器端需求处理用户登录,当用户到达登陆界面时,用户发送账号、密码等信息进行分装,服务器接受到用户发送的登陆账号、密码;验证用户登录,服务器将用户登陆发送的账号和密码,与数据库中已有的用户进行匹配,如果能能找到,那么就验证成功,找不到该用户,验证失败;处理用户发送信息和处理用户得到信息,用户可以通过对话框和自己的好友进行文字类的交流,可以发送消息,同时也可以接受好友消息;处理用户退出,关闭服务器等。
2.3客户端需求用户注册界面及结果,可以将用户的、性别、年龄等信息分装,添加到用户数据表中,然后用户可以根据注册的账号、密码进行登录;用户登录界面及结果,用户进入登陆界面,填写自己的账号、密码,然后将其提交给服务器;用户验证界面及结果,根据服务器验证的结果,验证成功,用户可以进入登陆成功界面,验证失败,用户会得到一个登陆失败界面;用户发送信息界面及结果,用户可以双击自己的好友,然后弹出一个对话框,可以和自己的好友进行交流;用户得到信息界面及结果,当好友给自己发送消息时,用户自己的好友界面端,好友头像闪动,然后点击好友头像上,就可以接受到好友的消息。
2.4 对于发送的消息的一些协议需求发送的消息必须至少使用一种消息格式,格式必须包含一个让接收者可以回消息的地址、发信者和即时收件箱的标识,以及允许对信息有效负载的编码和鉴别(非ASCII容),而且即时消息格式必须提供扩展和注册即时消息格式的模式机制。
这种模式机制,可以保证即时消息成功投递或者投递失败的时候,发信者获得足够的信息。
即时通讯协议,是指参与的双方或者多方通讯时所达到的共识。
协议必须是双方或者多方参与的,一方单独完成的就不算协议。
这样在协议动作的过程中,双方必须交换信息,包括控制信息、状态信息等等。
这些信息的格式必须是协议参与方同意并且遵循的。
好的协议要求清楚、完整,每一步都必须有明确的定义,并且不会引起误解;对每种可能的情况必须规定具体的动作。
本文的即时通讯协议必须提供方法保证即时消息的置信度,让即时信息未被监听、破坏、重排序或者回放,同时还必须保证即时消息被正确的实体阅读。
第三章系统设计3.1 软件设计流程因为该系统其需求是十分明确的,所以该系统的开发流程采用瀑布模型进行设计,分为几大步骤:先进行需求分析,再是系统设计,然后是详细设计与编码,其次是软件的测试,最后是软件的运行和维护。