JAVA技术基于java实现的P2P网络课设.doc

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA技术基于java实现的P2P网络课设

课程设计题目 基于P2P的局域网即时通信系统 实验环境及工具 计算机:2台PC机, 操作系统:Windows7 程序设计语言: java 设计要求 实现一个图形用户界面局域网内的消息系统。 功能:建立一个局域网内的简单的P2P消息系统,程序既是服务器又是客户,服务器端口使用3333。 用户注册及对等方列表的获取:对等方A启动后,用户设置自己的信息(用户名,所在组);扫描网段中在线的对等方(3333端口打开),向所有在线对等方的服务端口发送消息,接收方接收到消息后,把对等方A加入到自己的用户列表中,并发应答消息;对等方A把回应消息的其它对等方加入用户列表。双方交换的消息格式自己根据需要定义,至少包括用户名、IP地址。 发送消息和文件:用户在列表中选择用户,与用户建立TCP连接,发送文件或消息。 用户界面:界面上包括对等方列表;消息显示列表;消息输入框;文件传输进程显示及操作按钮或菜单。 设计内容与步骤 ; 服务器功能的设计和实现 客户功能的设计和实现 课程设计任务说明书 基本功能 (1)当某个用户上线后以自己的主机ip进入聊天室以后,自己的ip就会在“当前聊天者”的列表显示出来 (2)用户通过“发送”按钮可以将自己的要“发送的话”发送出去,同个局域网的在线用户都会收到 (3)通过双击用户的ip,弹出一对一聊天对话框。输入要说的话,可以喝某个用户进行一对一的聊天。 (4)通过“发送文件”按钮,弹出文件选择框,选择文件。可以把文件发送给跟你正在聊天的用户。 (5)如果有一个用户发送文件或者话给另外一个用户,这时候另外一个用户用收到一个提醒小窗口。这时候就可以打开对话框接受文件和话。 (6)如果对方用户已经成功接受了你的发送的文件,这时候会弹出对话框提醒你。 结构关系图 详细设计 多播的实现 多播主要是通过UDP协议实现的。在java中,可以通过java.net.DatagramPacket 这个类来实现的。只要你传入广播地址和内容以及端口,在这个广播地址里面的在线用户都可以收到这个消息。 一对一发送的实现。 因为一对一一定要有2台主机相连。所以我的实现的方法是先通过UDP发送3个字节探测是不是连接成功,如果成功才用TCP来连接。这里主要是用到java的socket 每个类的主要作用 PPfriend:主要是程序的启动类。继承了JFrame Mywindow: 画出主界面。继承了JFrame Dialog: 画出一对一聊天界面。继承了JFrame ReceiveIp:获得所有在线用户的ip以及消息。继承了Thread Receive: 接收文件。继承了Thread 继承了Thread RecevieToOne:建立TCP连接,接受某人的消息 SendFile:发送文件。继承了Thread SendIp:发送自己的ip。继承了Thread SendSMG:群发消息。继承了Thread SendToOne: 建立连接,确定发送文件,查找发送文件,发送给某人消息。继承了Thread SocketStatus:当前程序的状态:例如接受群消息。 代码清单 Dialog.java: package com.qgjava.p2p; /** * 当双击“当前聊天者列表”中的IP,弹出的对话框界面 * @author yangchuxi * */ public class Dialog extends javax.swing.JFrame { TextArea chat; TextField sendchat; Button sbutton,fbutton,refile; public Dialog(String name) { super(name); Label title=new Label(密函:); //创建个只读文本,用来显示别人发过来的消息 chat=new TextArea(20,20); chat.setEditable(false); //创建个允许编辑的文本,用来发送一对一消息 sendchat=new TextField(25); // sendchat.setEditable(true); sbutton=new Button(发送); fbutton=new Button(发送文件); refile=new Button(接收文件); refile.setEnabled(false); Panel p=new Panel(new FlowLayout(FlowLayout.LEFT)); //setLayout(new BorderLayout()); setBack

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档