对等模式的网络聊天室——网络聊天.doc_第1页
对等模式的网络聊天室——网络聊天.doc_第2页
对等模式的网络聊天室——网络聊天.doc_第3页
对等模式的网络聊天室——网络聊天.doc_第4页
对等模式的网络聊天室——网络聊天.doc_第5页
免费预览已结束,剩余8页可下载查看

下载本文档

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

文档简介

*大学课程设计任务书 09/10 学年第 一 学期学 院:*专 业:网络工程学生姓名:*学号:*课程设计题目:对等模式的网络聊天室 网络聊天起 迄 日 期:2009年12月 7日 2009年 12 月 31 日课程设计地点:网络工程实验室指 导 教 师:*系主任:*下达任务书日期: 2009 年 12 月 7 日课 程 设 计 任 务 书1设计目的:按照网络编程的基本原理,综合运用所学的知识,以小组为单位,设计开发一个网络应用系统。通过对一个实际问题的分析、设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力;另一方面,使学生能深入理解和灵活掌握教学内容。2设计内容和要求(包括原始数据、技术参数、条件、设计要求等):采用套接字方式,完成两台计算机的互联。设计要求:1) 采用套接字方式建立两台计算机的网络聊天;2) 采用多线程方式;3) 采用图形化界面;4) 操作方面、界面友好。3设计工作任务及工作量的要求包括课程设计计算说明书、图纸、实物样品等:工作任务:设计对等模式聊天似的网络聊天软件。工作量的要求:小组每个成员都需完成独立的功能模块,组长负责协调小组成员,最后联调成一个完善的应用系统。每人提交一份设计报告。课 程 设 计 任 务 书4主要参考文献:1 叶树华,高志红. 网络编程实用教程. 北京:人民邮电出版社,20062 汪晓平,钟军. Visual C+网络通信协议与应用实现. 北京:人民邮电出版社,20033 方敏,张彤.网络应用程序设计.安.安电子科技大学出版社,20054 黄超.indows下的网络编程.北京.人民邮电出版社,20035 耿祥义,张跃平. Java2实用教程. 清华大学出版社,20065设计成果形式及要求:1应用软件2课程设计说明书6工作计划及进度:2009年12 月 7 日 12 月 11 日 需求分析 12 月12日 12 月 14 日 概念结构设计、逻辑结构设计12 月15日 12 月 26 日 编码调试12 月27日 12 月 29 日 联调、测试12 月30日 12 月 30 日 撰写报告12 月31日 12 月 31 日 成绩考核系主任审查意见: 签字: 年 月 日*大学课 程 设 计 说 明 书学生姓名:*学 号:*学 院:*专 业:网络工程专业题 目:对等模式的网络聊天室 网络聊天指导教师: * 职称: * 2009 年 12 月 31 日1. 系统设计1.1. 目标设计对等聊天工具实现的是局域网中的聊天功能,其为一个对等的应用,既是服务器又是客户端,对等聊天工具既可以自动发现在线的伙伴,又可以和在线的伙伴进行点对点的聊天。主界面中也可以实现对所以在线伙伴的群聊。根据所学的Java与网络编程知识,采用套接字方式和多线程方式完成两台计算机的互联并用编码实现连接,完成题目要求的功能,从而达到掌握开发一个小型的类似于QQ聊天工具的软件。本课程设计利用Socket 套接字实现主机之间的数据通信,并设计一个网上聊天程序,基于UDP的通信。1.2 开发和运行环境开发工具:Eclipse,jdk5.0运行环境:操作系统:Windows 98/20001.3 本人主要工作我主要的工作是利用同组成员建立好的连接采用套接字和UDP的方式进行数据的传输,实现两台主机之间信息的发送和接收。2. 对等聊天工具系统概要设计对等模式的聊天系统功能模块图如下:对等聊天的主程序代码初始化,广播登陆信息运行界面并进行网络连接自动获取好友信息并自动更新点对点聊天模块 图2.1 对等聊天系统功能模块图软件分为两个模块,建立网络连接和点对点聊天工具。我主要负责网络聊天部分,实现信息的的发送和接收。 图2.2 程序流程图3对等聊天工具系统详细设计详细设计阶段的根本任务是确定应该怎样具体实现所要求的系统,也就是经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在系统实现阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。把经过总体设计得到的各个模块详细的加以描述。实现对等聊天功能,使用UDP建立连接并使用UDP实现好友列表动态刷新,可以单独选择好友进行聊天,也可以进行群聊,即广播信息。其中系统功能模块图如图3-1所示。 图3.1 单方上线 图3.2 对方也上线运行软件,在输入框输入想说的话,选中用户列表,或者进行广播,发送出去的信息在上面的对话框显示,可以实现局域网内两台或者多台电脑的连接,并进行实时聊天,由于使用的是基于UDP的通信,不受网络的实时通信状态的影响。发送信息的核心程序代码如下:private void sendMessage() /封装一个方法来发送聊天消息String hostName = (String)PeopleList.getSelectedValue();if(!(hostName = null) & !(BroadCast.isSelected() /给某个选定的用户发送消息InetAddress hostAddress = PeopleMap.get(hostName);String message = inputArea.getText();this.playArea.setText(playArea.getText()+localname+ +To:+hostName+-+formatter.format(new Date()+n+this.inputArea.getText()+n);if(message.length() 0) byte me = message.getBytes();DatagramPacket mePacket = new DatagramPacket(me,me.length,hostAddress,DATA_PORT);try dataSocket.send(mePacket);inputArea.setText(); catch (IOException ioe) ioe.printStackTrace(); else JOptionPane.showMessageDialog(mainFrame, 发送消息不能为空!);else if(BroadCast.isSelected() /在组播组内广播消息String message = inputArea.getText();if(message.length() 0) byte me = (multi+message).getBytes();DatagramPacket castPacket = new DatagramPacket(me,me.length,multiAddress,MULTICAST_PORT);try multiSocket.setLoopbackMode(false);multiSocket.send(castPacket);inputArea.setText(); catch (SocketException se) se.printStackTrace(); catch (IOException ioe) ioe.printStackTrace(); else JOptionPane.showMessageDialog(mainFrame, 发送消息不能为空!);else JOptionPane.showMessageDialog(mainFrame,请选择您要发送消息的目的地!);接收信息的核心代码如下:private class ReadChatingThread implements Runnable /启动一个线程来读取聊天数据public void run() while(true) try dataSocket.receive(ChatPacket);String hostName = ChatPacket.getAddress().getHostName();String chat = new String(ChatPacket.getData(),0,ChatPacket.getLength();/接收到的仅仅是普通的聊天数据playArea.append(来自:+hostName+-(+formatter.format(new Date()+)n+chat+n); catch (IOException ioe) ioe.printStackTrace();/while/run4系统测试运行程序,在线成员列表中将自动获取本地电脑用户及其它在线用户的网络地址和用户主机名。 本实验是在一台计算机上测试,如要进行两台计算机的通讯,只需要将两台电脑连入一个局域网中,在两台电脑上运行程序,及自动进行连接,并自动获取成员列表,既可以进行简单的聊天。选中在线成员列表就可以与相应用户进行聊天,在文本框内输入消息,按发送消息,成功发送。选中用户发送信息成功如图4.1示:图4.1 双方发送信息成功当没有选择用户列表中的某个用户时,选中复选框广播时,可以发送给在线的所有用户。没有选中时,点击发送按钮则显示提示框1,输入信息框中信息为空时,点击发送信息按钮,显示提示框2。 图4.2 提示框1 图4.3 提示框2当选中广播复选框时,则信息以广播信息发送给所有用户,及所有在线用户都能收到该广播信息,显示如图4.5: 图4.4 广播信息5个人体会课程设计的过程是艰辛的,但是收获却是很大的。这次课程设计我主要是应用以前学习的网络编程以及Java的一些知识,综合起来才完成了这个网络通讯的软件,虽然软件很小,实现的功能也很有限。课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。当然,我在课程设计中碰到了很多的问题,我通过查阅相关书籍,资料,以及上网查资料,特别是得到了许多老师和同学的帮助,还让我认识到了自己对以前所学知识的不足方面,开拓了自己的思路!随着社会发展,internent的迅速普及,以及飞速发展,人们对实时通信的要求越来越迫切,需求日益增加,网络聊天已经成为了一大时尚,不少人都有这样的经历。用户数据报协议(UDP)是一个无连接协议,使用这种协议时,并不需要在两台计算机之间建立固定的连接,也就是说,通信双方没有服务器和客户机之分,它们之间进行的是对等通信。所以它的优势很明显。是现代通信不可或缺的一部分。这次的课程设计我主要应用所学,通过在Java编

温馨提示

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

评论

0/150

提交评论