




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于基于 p2p 的即时聊天和文件传输软件的即时聊天和文件传输软件 摘摘 要要 随着计算机网络技术的飞速发展,人们对于网络的依赖性也越来越大。通过 网络的即时通信也越来越受到人们的喜爱,比如说现在非常流行的 QQ 即时通信 软件就解决了人们在网络中交流的需求。 基于 p2p 的即时聊天和文件传输软件,是基于 tcp/ip 协议中的 tcp 和 udp 协议 完成的一个能够完成即时通信和传输文件的软件,该软件实现了局域网内的通行, 在不需要使用公网的情况下,使用该软件作为通信和传输文件的工具,既简单又 安全。 该软件采用了通信模型中的 p2p 模型,使用 java 语言实现,实现原理较简单 功能较单一,界面美化度较低。是一款简单的即时通信和文件传输软件。 关键词关键词: 计算机网络计算机网络 ; p2p ; tcp ; udp ; 通信和文件传输软件通信和文件传输软件 目目 录录 1 引言引言.1 1.1 课题背景.1 1.2 国内外现状.1 1.3 本课题研究的迫切性.1 1.4 本文的主要工作.1 2.需求分析和开发工具需求分析和开发工具.1 2.1.需求分析 .1 2.2 开发工具 .2 3.系统总体结构设计系统总体结构设计.3 3.1 基本简介.3 3.2 系统功能模块设计.3 3.3 功能模块介绍.3 4.系统流程与实现系统流程与实现.4 4.1 系统设计流程.4 4.1.1 即时聊天功能的流程设计.4 4.1.2 文件传输功能系统实现.6 4.2 实现 .8 5 .测试测试.10 结结 论论.13 参考文献参考文献.13 1 引言引言 1.1 课题背景课题背景 网络的发展促进了通信的发中,通信的发展反过来让网络发展的更大更快,通信 作为我们日常生活中不可或缺的东西,正在改变着人们的生活。比如说 QQ 即时通信 软件就为人们的生活和学习带来了极大的方便。但是人们有时需要和与自己同一个局 域网内的用户通信而通信的内容不通过公网来保证通信的安全,防止黑客或者一些心 怀不轨的人通过非法的手段获取到通信的内容。因为一旦信息泄露了就有可能带来不 可估量的损失。在这种情况下,基于 p2p 的即时聊天和文件传输的软件就产生了。 1.2 国内外现状国内外现状 网络的普及也让一些人获得了获取了更多的信息。通过窃听,篡改,重放等攻击 的手机来阻止,或者是窃取别人的有用信息,这种事在一些大型的公司里曾经就发生 过。现在一些大型的公司自己会去开发适合自己公司的即时通信软件来防止此类的安 全事件出现,因此基于 p2p 的即时聊天和文件传输的应用开发现在仍然受到关注。 1.3 本课题研究的本课题研究的迫切性迫切性 基于 p2p 的即时聊天和文件传输软件的实现能够帮助我们了解基于 p2p 的软件的 实现原理和过程,为我们以后开发一些大型的 p2p 的软件提供了技术上的保证。同 时该软件能够用于局域网的通信和传输文件,具有一定的实际意义。 1.4 本文的主要工作本文的主要工作 本文主要介绍了基于 p2p 的即时聊天和文件传输的软件的实现原理和实现的过 程,针对软件的原理和过程进行深入的讲解。同时本文可以作为基于 p2p 的即时聊天 和文件传输的软件的使用说明书,通过具体而详细的阐述,让大家更容易的理解基于 p2p 的即时聊天和文件传输的软件的实现原理和实现的过程。 2.2.需求分析和开发工具需求分析和开发工具 2.1.需求分析需求分析 由于国内外的安全现状不容乐观,人们通信的时的信息很容易会被黑客们获取, 为了在局域网中安全简单的痛信,人们就开发了基于 p2p 的即时通信和文件传输软件。 该软件能够实现在局域网内和其他人通信,从而保证了通信的安全,让人们拥有更加 安全和简单的痛信环境。同时,由于该软件是使用 java 语言开发,具有平台无关性。 能够在不同的操作系统的平台下完成即时通信和文件传输的功能。 2.2p2p 的即时聊天和文件传输软件的功能的即时聊天和文件传输软件的功能 p2p 的即时聊天和文件传输软件有以下功能: (1)局域网内点对点通信, 能够同一时间和多个人,在不同的 ip 和端口上实现通信 (2)简单文件传输 能够传输 1M 以上的文件 (3)能够在多个平台下实现通信 Java 平台无关性 2.2 开发工具开发工具 开发环境 java 开发工具 Myeclipse TCP 协议的工作流程下图所示: 服务器端 用 socket 方法建立套接字 用 bind 方法把套接字与本 地地址绑定 用 Listen 方法准备好连接 用 accept 方法接受连接, 并等待 client 端连接 如连接已建立,accept 返 回新的套接字 用 Receive 和 send 方法在 套接字上做数据交换 进行连接 数据交换 Shutdown 方法用于释放连 接 关闭套接字,服务结束 用 socket 方法建立套接字 用 connect 方法把套接字 与 server 端相连 用 Receive 和 send 方法在 套接字上做数据交换 Shutdown 方法用于释放连 接 关闭套接字,服务结束 客户端 UDP 协议的工作流程下图所示: 数据传送 用 Receive 和 send 方法在 套接字上做数据交换 关闭套接字,服务结束 Shutdown 方法用于释放连 接 服务器端 用 socket 方法建立套接字 用 bind 方法把套接字与本 地地址绑定 用 Receive 和 send 方法在 套接字上做数据交换 关闭套接字,服务结束 Shutdown 方法用于释放连 接 客户端 用 socket 方法建立套接字 用 bind 方法把套接字与本 地地址绑定 3.3.系统总体结构设计系统总体结构设计 3.1 基本简介基本简介 p2p 的即时聊天和文件传输软件采用 tcp 和 udp 协议,使用 java 语言实现基于 p2p 的即时聊天和文件传输的功能。同时,由于采用 java 语言实现具备了在多种平台下运 行的优点。该软件主要包括两大部分,聊天部分和文件传输部分。聊天部分采用了 udp 协议,文件传输部分采用了 tcp 协议。 3.2 系统功能模块设计系统功能模块设计 p2p 的即时聊天和文件传输软件实现了以下功能 (1)即时聊天功能 (2)文件传输功能 (3)记录查询聊天内容 3.3 功能模块介绍功能模块介绍 即时聊天功能采用 udp 协议实现。聊天时用户必须输入通信对方的 ip 和端口号,对 方只需要知道消息发送方的端口号,就能够收到信息。对方收到信息后,同样必须输 入 ip 才能回复消息给对方。通信模型如下图 Port 对方 Ip 软件软件 Port 对方 Ip 聊天功能实现模型图 文件传输功能是采用 tcp 协议实现的,tcp 协议的面向连接,可靠性,面向字节流 等优点,以及差错控制,流量控制等特点,保证了文件传输的可靠性。整个流程是, 文件发送方首先选择文件,在选择文件后,先发送文件的名称和大小给接收者。接收 这如果同意接收文件则由接收者作为客户端向发送端发起连接,连接建立后,发送端 开始传送文件给接收端。实现模型如下图所示 选择文件 发送文件 名和大小 同意接收连接发送端开始传送文件 选择文件 保存路径 软件发送者 A 接收者 B 文件传输功能 4.4.系统流程与实现系统流程与实现 4.1 系统设计流程系统设计流程 4.1.1 即时聊天功能的流程设计即时聊天功能的流程设计 采用 DUP 协议设计即时聊天功能,在即时聊天功能中,设计了一个发送端和一个接 收端,发送端和接收端处于同一个平台中,为了使通信双方能够造一次连接中进行多次通 信在接收端采用了多线程,实现多次通信。 在通信建立的时候,通信的发起方首先填写通信的 ip 地址和 port 端口,然后发送消 息给接收者。接受者需要在同样的端口上等待发起者的信息。 发送端: 开始 Sendmessage 调用 UDP DatagramSocket 从发送窗口中读入数据 DatagramPacket 调用 Send 方法发送数据 调用 close 方法关闭发送 端 结束 发送端工作流程图 接收端: 开始 DatagramSocket DatagramPacket 调用receive方法接收数据,存入 buf 中 调用 close 方法关闭接收 方端 结束 是否收到文件文 件 进入文件接 收区 显示内容 N Y 接收端工作流程图 4.1.2 文件传输功能系统实现文件传输功能系统实现 使用 TCP 协议实现文件传输功能,在文件传输开始时,由发送方给接收方发送一个消 息,消息内容为待发送文件的文件名和长度。接收端收到后判断是不是传送的文件,如果 是传送的文件接收方择是否接收文件。然后开始传输文件,文件传输完成后,自动关闭服 务器端和客户端。 发送端: 开始 发送文件名和文件大小 选择文件 结束 等待对方接收 是否接收 N 发送文件 调用 ServerSocket 创建服务器端 调用 getOutputStream()发送文件 将文件的内容读取到 buf 中 通过write(buf, 0, read)方法发送文件内容 关闭发送端 serversocket 和 server Y 文件传输发送端工作流程 接收端: 开始 接收文件名和文件大小 结束 显示文件名和大小 是否接收 N 创建 socket 调用 getInputStream()方法接收内容 调用 getInputStream 发送文件 将文件的内容读取到 buf 中 将文件写入本地磁盘 关闭客服端 Y 4.2 实现实现 基于 p2p 的即时通信和文件传输软件的实现是采用窗体的形式。在实现过 程中设计到几点主要的功能 首先即时通信功能的发送端的实现,首先创建 DUP 的 socket 套接字和 UDP 数据报包 在数据包中写入消息发送到接收端。 主要实现代码: public void send() throws Exception DatagramSocket ds2=new DatagramSocket(); DatagramPacket dp2=new DatagramPacket(strmsg.getBytes(), strmsg.getBytes().length,InetAddress.getByName(ip),por t); ds2.send(dp2); ds2.close(); 接收端,还是创建 DUP 的 socket 套接字和 UDP 数据报包,然后接收数据。 DatagramSocket ds=new DatagramSocket(port);/udp的 socket套接字 DatagramPacket dp=new DatagramPacket(buf,buf.length);/udp数据报包 ds.receive(dp); 传送文件的实现过程: 发送文件的窗体采用另一个 frame 完成,在 frame 中完成了,选择和发 送文件 sendmessage sm = new sendmessage(file+filepath.getText().toString(), mainFrame.ip.getText(),Integer.parseInt(mainFrame.port.ge tText().toString(); sm.send(); ServerSock ss=new ServerSock(Integer.parseInt(mainFrame.port.getText().toSt ring(),filepath.getText().toString(); ss.start(); 选择文件后,发送端使用 UDP 发送文件名和文件大小给接收端。如果接收端 确认,就开始传输文件 接收后,显示的接收和拒接的信息,以供接收端接收 if(new String(buf).substring(0, 4).equals(file) mainFrame.jieshoufile.setText(收到文件: +str+是否接收?); mainFrame.jieshouwenjian.setEnabled(true); mainFrame.jieshouwenjian.setEnabled(true); mainFrame.jieshouwenjian.setText(接收); mainFrame.jujue.setText(拒绝); 接收端点击接受后,创建 clientsocket 去连接服务器端,然后服务器开始 传送文件 new Client(jfc.getSelectedFile().getPath() 接收数据 public DataInputStream getMessageStream() throws Exception try getMessageStream = new DataInputStream(new BufferedInputStream(socket.getInputStream(); return getMessageStream; catch (Exception e) e.printStackTrace(); if (getMessageStream != null) getMessageStream.close(); throw e; finally 写入到文件 while (true) int read = 0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 4s店安全管理制度
- 下属企业管理制度
- 标本采集条码管理制度
- 校内场所封闭管理制度
- 校园事项清单管理制度
- 校园卫生服务管理制度
- 校园安全奖惩管理制度
- 校园招聘代理管理制度
- 校园活动器材管理制度
- 校园监控日常管理制度
- 老年防诈骗课件
- 现代物流技术在军事后勤保障中的应用研究
- 停车场承包经营协议书范本
- 工作分析实务-国家开放大学电大易考通考试题目答案
- 2025年广州市越秀区建设街招考聘用劳动保障监察协管员高频重点提升(共500题)附带答案详解
- 医疗器械产品运输质量保证措施
- 2025年宁夏银川市灵武市文化旅游投资开发有限公司招聘笔试参考题库附带答案详解
- 燃气行业法律法规培训
- T-GDHES 003-2024 预应力混凝土U形板桩应用技术规程
- 八不伤害培训课件
- 出镜记者与现场报道知到智慧树章节测试课后答案2024年秋武汉学院
评论
0/150
提交评论