资源简介
广东工业大学计算机网络课程设计——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登录界面
- 下一篇:超市订单管理
相关资源
- 广工 计算机网络课程设计 端口扫描器
- Computer Networking: A Top Down Approach 5th e
- Computer Networking: A Top Down Approach 5th e
- Computer Networking: A Top Down Approach 5th e
- 数据库物流系统课程设计
- 选修课管理系统——数据库课程设计
- 计算机网络实验系统 NetRiver2000 系列实
- 迷宫的数据结构课程设计报告
- 微机原理课程设计9 汽车信号灯控制系
- IPv4协议转发实验报告含代码
- cp2102中文使用手册
- 无限制搜索工具P2PSearcher
- 汇编语言课程设计案例精编源代码
- UML 人事管理 课程设计
- fakeapp2.2安装包
- CAN总线课程设计
- UDP P2P透防火墙关键技术DELPHI版
- 数字逻辑红绿灯.circ
- IP2716 中文手册 数据手册 快充协议芯
- 数据结构课程设计停车场管理实验报
- C课程设计--吃豆人.doc
- 外弹道学课程设计代码.zip
- UnitySoftMask.zip287786
- 国科大计算机网络题目参考答案2016年
- 数据结构--稀疏矩阵课程设计.doc
- 数据结构课程设计——收藏夹和购物
- 数据挖据课程设计
- dsp28335的pwm程序
- 计算机网络课程设计之规划大学校园
- 房产管理系统(数据库课程设计).
评论
共有 条评论