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

基于java的p2p实现文件共享和传输,第1张

在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网络通信的方法。   

你可能安装了:Advanced Networking Pack for Microsoft Windows XP Service Pack 1 (SP1)。Advanced Networking Pack 是 Windows XP SP1 的一个添加项,它包括一个更新的 Internet 协议版本 6 (IPv6) 网络堆栈、一个 IPv6 Internet 连接防火墙 (ICF) 和 Microsoft 点对点 (P2P) 网络平台。可选的 Windows 点对点网络组件为点对点程序通过网络地址转换 (NAT) 设备和通过 Internet 在计算机与计算机之间直接通信提供了一个框架。

详情请看如下网址:http://support.microsoft.com/kb/817778/zh-cn


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11325813.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存