//接收端
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UdpReceive {
public static DatagramSocket dataSocket;
public static final int PORT = 8;
public static byte[] receiveByte;
public static DatagramPacket dataPacket;
public static void main(String[] args) throws IOException {
dataSocket = new DatagramSocket(PORT);
DataOutputStream fileOut = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("D:\\TDDOWNLOAD\\b.txt")));
int i = 0;
while(i == 0){//无数据,则循环
receiveByte = new byte[1024];
dataPacket = new DatagramPacket(receiveByte, receiveByte.length);
dataSocket.receive(dataPacket);
i = dataPacket.getLength();
//接收数据
if(i > 0){
//指定接收到数据的长度,可使接收数据正常显示,开始时很容易忽略这一点
fileOut.write(receiveByte,0,i);
fileOut.flush();
i = 0;//循环接收
}
}
}
}
//发送端
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Inet4Address;
import java.util.Date;
import java.util.concurrent.TimeUnit;
public class UdpSend {
public static DatagramSocket dataSocket;
public static final int PORT = 8;
public static byte[] sendDataByte;
public static DatagramPacket dataPacket;
public static void main(String[] args) throws IOException ,InterruptedException{
String filePath = "D:\\a.txt";
DataInputStream fis = new DataInputStream(new BufferedInputStream(new FileInputStream(filePath)));
dataSocket = new DatagramSocket(PORT + 1);
sendDataByte = new byte[1024];
int read = 0;
long a = new Date().getTime();
while(true){
if(fis != null){
read = fis.read(sendDataByte);
}
if(read == -1){
System.out.print("用时:");
System.out.println(new Date().getTime() - a);
break;
}
dataPacket = new DatagramPacket(sendDataByte,sendDataByte.length,(Inet4Address) Inet4Address.getByName("localhost"), PORT);
dataSocket.send(dataPacket);
TimeUnit.MICROSECONDS.sleep(1);//限制传输速度
}
}
}
分享到:
相关推荐
UDP实现可靠文件传输.doc UDP实现可靠文件传输.doc
基于socket UDP协议实现文件传输(windows vc++源代码) UDP传1GB的文件仅需15秒 该代码包含 根据文件内容长度生成MD5码,以供校验文件完整性 本代码包含windows vc++编写dll的代码
用UDP实现可靠文件传输 用UDP实现可靠文件传输 用UDP实现可靠文件传输
简单的控制台程序,全部代码用C语言实现,可直接运行。基于c/s模型设计,先运行server.c再运行client.c
qt实现udp传输文件(图片、文档之类)里面还包含tcp传输数据(不是文件)
C# UDP(Socket)异步传输文件-实现稳定的文件传输 ,并且有美丽的传输控件
在网上搜到的C#实现的UDP文件传输代码,分享给大家。局域网下速度能达到5,6M,效率还可以
基于UDP协议的文件传输软件,用MFC编写了简单界面,内有注释易理解,实现了消息互传和小文件传输
利用UDP实现异步传输文件,采用C/S模式处理
实现简单的基于udp的文件传输,代码比较简单易懂,传输方面比较不怎么完善,还请原谅
linux下 c语言实现 udp方式p2p文件传输
本资源是使用 java,分别用 TCP 和 UDP 传输文件的源代码。读者朋友可以下载下来,参考着满足自己的需求。 另有博客《Java 使用 TCP 和 UDP 传输文件》可以参考,地址是:...
与网上盛传的UDP可靠传输传输控制策略不同,底层采用完成端口模式Socket。 实现可靠传输,源码中包含打洞代码,只有普通打洞,没有端口猜测,打洞功能没有加入demo中。 如有更好的建议希望通知我,到空间留言。 或...
自己写的额外代码来保障UDP可靠的文件传输 解决UDP传输丢包问题。
基于udp文件传输协议,实现udp大文件传输,且稳定
使用Java语言编写程序,设计UDP服务器。考虑到实时性,采用UDP协议。 1.设计一个简单的界面,使得程序能够流畅的完成视频文件的传输。
用C#.NET实现带有窗体的UDP文件传输
基于双协议(TCP\UDP)的文件传输,并实现了UDP的可靠性
本版本要实现公网穿文件到内网或者本身在一个局域网而接收端在本局域网的局域网,需要接收端点击ready准备,然后传送端就会收到提示 并且ip和端口自动输入,只需要添加...如果需要全功能版请下载NAT UDP打洞技术实现
这是一个基于UDP文件传输的工程,包括需求分析,概要设计和全部源代码。实现完整,包括完整注释。界面用MFC实现。实现了客户端与服务器的通信,包括文件传输和消息发送