资源简介
广东工业大学计算机网络课程设计——p2p程序。包含课程设计报告。可以拿优!

代码片段和文件信息
package com.sam.controller;
import java.io.*;
import java.net.*;
import java.util.*;
import org.json.*;
import com.sam.utils.ConstantValue;
import com.sam.utils.Utils;
public class Broadcast
{
private ReceiveMessageListener receiveBroadcastListener;
private String localName;
private String localIp;
public Broadcast(String localName String localIp)
{
super();
this.localName = localName;
this.localIp = localIp;
}
/**
* 发送广播
* @param type 发送消息的类型
*/
public void send(String type)
{
DatagramSocket socket = null;
try
{
JSONobject jsonobject = new JSONobject();
jsonobject.put(ConstantValue.TYPE type);
jsonobject.put(ConstantValue.NAME localName);
jsonobject.put(ConstantValue.IP localIp);
byte[] msg = jsonobject.toString().getBytes();
InetAddress inetAddr = InetAddress.getByName(“255.255.255.255“);
socket = new DatagramSocket();
DatagramPacket packet = new DatagramPacket(msg msg.length inetAddr 3333);
socket.send(packet);
System.out.println(“send broadcast->“ + new String(packet.getData()));
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
if (socket != null)
socket.close();
}
}
/**
* 开启线程随时接收广播
*/
public void receive()
{
new Thread(new Runnable()
{
@Override
public void run()
{
DatagramSocket socket = null;
try
{
DatagramPacket packet = new DatagramPacket(new byte[1024] 1024);
socket = new DatagramSocket(3333);
while (true)
{
System.out.println(“receive broadcast begin“);
socket.receive(packet);
byte[] recvByte = Arrays.copyOfRange(packet.getData() 0 packet.getLength());
String json = new String(recvByte);
JSONobject jsonobject = new JSONobject(json);
String type = jsonobject.getString(ConstantValue.TYPE);
String name = jsonobject.getString(ConstantValue.NAME);
String ip = jsonobject.getString(ConstantValue.IP);
if (!localIp.equals(ip) && receiveBroadcastListener != null)
{
String msg = Utils.HostToString(name ip);
if (type.equals(ConstantValue.TYPE_OFFLINE))
{
receiveBroadcastListener.contactsOffline(msg);
}
else
{
receiveBroadcastListener.contactsOnline(msg);
if (type.equals(ConstantValue.TYPE_ONLINE))
responseToBroadcast(ip);
}
}
System.out.println(“receive broadcast: msg->“ + json);
}
}
catch (SocketException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
if (socket != null)
socket.close();
}
}
}).start();
}
/**
* 回应对等方的上线广播
* @param ip 本地的ip地址
*/
private void responseToBroadcast(String ip)
{
DatagramSocket socket = null;
try
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 168395 2017-06-27 21:26 P2P(可执行文件).jar
文件 422500 2018-02-01 12:14 课设报告.docx
目录 0 2017-06-27 21:31 P2P\
文件 388 2017-05-28 00:09 P2P\.classpath
文件 379 2017-06-27 21:24 P2P\.project
目录 0 2017-06-27 21:25 P2P\.settings\
文件 598 2017-05-28 00:08 P2P\.settings\org.eclipse.jdt.core.prefs
目录 0 2017-06-27 21:25 P2P\bin\
目录 0 2017-06-27 21:25 P2P\bin\com\
目录 0 2017-06-27 21:25 P2P\bin\com\sam\
目录 0 2017-06-27 21:25 P2P\bin\com\sam\controller\
文件 2962 2017-06-27 21:24 P2P\bin\com\sam\controller\Broadcast$1.class
文件 306 2017-06-27 21:24 P2P\bin\com\sam\controller\Broadcast$ReceiveMessageListener.class
文件 3981 2017-06-27 21:24 P2P\bin\com\sam\controller\Broadcast.class
文件 255 2017-06-27 21:24 P2P\bin\com\sam\controller\FileClient$FileSendingListener.class
文件 3019 2017-06-27 21:24 P2P\bin\com\sam\controller\FileClient.class
文件 3071 2017-06-27 21:24 P2P\bin\com\sam\controller\FileServer$1.class
文件 1399 2017-06-27 21:24 P2P\bin\com\sam\controller\FileServer.class
文件 1627 2017-06-27 21:24 P2P\bin\com\sam\controller\Main$1.class
文件 1017 2017-06-27 21:24 P2P\bin\com\sam\controller\Main$2.class
文件 1033 2017-06-27 21:24 P2P\bin\com\sam\controller\Main$3.class
文件 5181 2017-06-27 21:24 P2P\bin\com\sam\controller\Main.class
文件 3054 2017-06-27 21:24 P2P\bin\com\sam\controller\MessageClient.class
文件 2046 2017-06-27 21:24 P2P\bin\com\sam\controller\MessageServer$1$1.class
文件 1460 2017-06-27 21:24 P2P\bin\com\sam\controller\MessageServer$1.class
文件 292 2017-06-27 21:24 P2P\bin\com\sam\controller\MessageServer$ServerInputListener.class
文件 2802 2017-06-27 21:24 P2P\bin\com\sam\controller\MessageServer.class
目录 0 2017-06-27 21:25 P2P\bin\com\sam\utils\
文件 1022 2017-06-27 21:24 P2P\bin\com\sam\utils\ConstantValue.class
文件 1187 2017-06-27 21:24 P2P\bin\com\sam\utils\Utils.class
目录 0 2017-06-27 21:25 P2P\bin\com\sam\view\
............此处省略43个文件信息
- 上一篇:基于QT的仿QQ登录界面
- 下一篇:超市订单管理
相关资源
- 高频电子线路课程设计报告收音机
- 直流稳压电源的课程设计、安装及调
- EDA课程设计_密码锁
- 单片机课程设计 篮球计分器
- WinCE下CP210x的驱动程序
- dsp2812上128点FFTc程序以及其CMD文件
- 数据结构课程设计 6 1 彩票系统
- 端口扫描课程设计详细的报告
- DSP28335程序片内FLASH搬运至RAM运行的
- 佳能IP2780清零
- 步进电机课程设计(个人设计)
- 校园网络规划与设计课程设计
- 编译原理课程设计:词法语法编译器
-
simuli
nk 课程设计 qpsk - 武汉理工大学 单片机课程设计 16*16点
- 数据库VFP课程设计
- 分页系统模拟实验 操作系统 课程设
- CAD LISP24个源代码
- 模拟段页式虚拟存储管理中地址转换
- 硬件课程设计—流水灯(quartus软件
- 超市收银系统eclipse access大学课程设计
- 航空订票系统_数据结构课程设计
- c 课程设计 职工信息管理系统
- 汇编语言,课程设计,红绿灯
- 机床液压系统课程设计卧式钻床动力
- 课程设计蔬菜大棚自动控制系统,包
- 密码学课程设计:DES加密解密算法的
- 网络(UDP)转串口程序
- 基于DSP2812的以太网调试程序
- SOCKET 网络编程 计算机网络 作业 客户
评论
共有 条评论