关于p2p项目java代码的信息

bt这样的p2p软件用什么语言编啊,vc++?java?

我也对p2p比较感兴趣,只是没有C++基础,现在正在打算开发一个p2p的软件,学习中。

成都创新互联公司是一家专业提供澄城企业网站建设,专注与成都网站建设、网站制作H5高端网站建设、小程序制作等业务。10年已为澄城众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

很多都是用VC++开发的,这个网站有提供一个BT开发接口:

你还可以下载到bt开发的很多开源代码。

你可以上网搜索一下其它的源码。

参考文章:

广域网实现p2p文件传输 如何实现nat穿透 求java或C++源代码

假设有两台分别处于各自的私有网络中的主机:A和B;N1和N2是两个NAT设备;S是一个使用了一个众所周知的、从全球任何地方都能访问得到的IP地址的公共服务器

步骤一:A和B分别和S建立UDP连接;NAT设备N1和N2创建UDP转换状态并分配临时的外部端口号

步骤二:S将这些端口号传回A和B

步骤三:A和B通过转换好的端口直接联系到对方的NAT设备;NAT设备则利用先前创建的转换状态将分组发往A和B

源码已发送请查收

java p2p通信编程

p2p是一种基于TCP/IP的一个上层文件传输协议。应该不是你想要的。

要实现广域网中的双端通信。你肯定不能把对方的ip地址写死在程序里,必然要有一套发现机制。

要么就是以服务器为中心,大家把消息发给中心服务器,有服务器再转发给对方,就像发送邮件的SMTP。

现在即时通信的一些开源协议有一些,但不管基于什么原理实现,都少不了要有一台中央服务器做协助,不过估计你用不到太复杂的。简单实现就可以了。

基于java的p2p实现文件共享和传输

在JAVA中,发送和接收多播信息的方法: 

发送多播信息需经历步骤 

确定发送的具体信息内容 

String msg = "Hello"; 

选用专门为多播指定的D类IP地址(224.0.0.1到239.255.255.255),创建一个多播组 

InetAddress group = InetAddress.getByName("228.5.6.7"); 

使用指定的端口(一般选1024以上的端口号)建立多播套接字 

MulticastSocket s = new MulticastSocket(6789); 

加入多播组 

s.joinGroup(group); 

创建一个数据报封装多播信息 

DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(), 

group, 6789); 

发送 

s.send(hi); 

接收多播信息的步骤 

开辟接收缓冲区 

byte[] buf = new byte[1000]; 

创建接收数据报 

DatagramPacket recv = new DatagramPacket(buf, buf.length); 

接收 

s.receive(recv); 

注意:以上发送和接收程序在同一个文件中实现,若在不同文件中实现则应分别定义多播套接字并加入多播组。 

3.与已知IP和端口的端点通信 

在互联网上主要采用TCP和UDP来实现两点之间的通信。采用TCP可可靠传送信息,但花费时间较多;采用UDP可快速传递信息,但不能保证可靠传递。

JAVA实现TCP通信的方法 :

利用Socket(InetAddress addr, int port)和 Socket(String host, int port),创建客户端套接字,利用ServerSocket(int port)创建服务器端套接字,port端口就是服务器监听连接请求的端口,通过调用accept()返回一个最近创建的Socket对象,该Socket对象绑定了客户程序的IP地址或端口号。通过调用Socket的 getInputStream()方法获得输入流读传送来的信息,也可能通过调用Socket的 getOutputStream()方法获得输出流来发送消息。 

 

JAVA实现UDP通信的方法 :

使用DatagramPacket(byte [] buffer, int length, InetAddress addr, int port) 确定数据包数组、数组的长度、数据包的地址和端口信息。使用DatagramSocket()创建客户端套接字,而服务器端则采用DatagramSocket(int port),调用send(DatagramPacket dgp)和 receive(DatagramPacket dgp)来发送和接收数据包。本文设计的程序采用UDP。

P2P(Peer-to-Peer 端到端)模型是与C/S(客户/服务器)模型相对应。基于C/S的用户间通信需要由服务器中转,在C/S中的服务器故障将导致整个网络通信的瘫痪。。而基于P2P的用户间通信则是直接通信,去掉了服务器这一层,带来的显著优点是通信时没有单一的失败点,一个用户的故障不会影响整个P2P网络。本文提供了一种用JAVA实现P2P网络通信的方法。   


本文标题:关于p2p项目java代码的信息
分享URL:http://myzitong.com/article/doccidc.html