`
huahua09
  • 浏览: 46929 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

UDP 实现文件传输

 
阅读更多
//接收端


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);//限制传输速度
}
}

}
分享到:
评论

相关推荐

    C#下用UDP实现的文件传输

    总之,通过C#和UDP实现文件传输需要考虑数据的可靠性、顺序和错误处理,同时借助异步编程提高效率。创建一个用户友好的传输控件能进一步提升应用的用户体验。在实际项目中,开发者还需要考虑安全问题,如加密传输、...

    UDP实现可靠文件传输.doc

    总结来说,实现UDP上的可靠文件传输,关键在于设计合适的错误检测和恢复策略,如使用滑动窗口协议配合重传机制。通过这种方式,即使UDP本身的不可靠特性,也可以通过软件层面的手段来弥补,达到类似TCP的可靠传输...

    udp.rar_UDP 可靠_UDP 实现 可靠 文件 传输_UDP 文件_udp 文件传输_实现文件传输

    因此,要使用UDP实现可靠文件传输,我们需要自己实现这些机制。 1. **序列号和确认机制**:每个UDP数据报文都应附带一个序列号,以便接收端可以按正确的顺序重组数据。同时,接收端需要向发送端发送确认信息,表明...

    UDP文件传输.rar

    在易语言中实现UDP文件传输,需要理解并掌握以下几个关键点: 1. **UDP套接字的创建**:在易语言中,使用“创建套接字”命令创建UDP套接字,用于发送和接收数据。 2. **绑定端口**:通过“绑定套接字”命令,将...

    C#UDP通信+文件传输 源码

    - 熟悉源码有助于深入理解UDP通信和文件传输的实现细节,提高编程能力。 6. 开发实践: - 毕业设计:UDP通信和文件传输是常见的毕业设计主题,能锻炼开发者在网络编程和系统设计方面的能力。 - 开题报告与答辩...

    基于UDP的文件传输工程(C++)

    【基于UDP的文件传输工程(C++)】是一个利用UDP(User Datagram Protocol)协议进行文件传输的项目。UDP是互联网协议栈中的一种无连接、不可靠的传输协议,相较于TCP,它具有更低的延迟和更高的传输效率,适用于对...

    qt udp传输文件

    由于UDP不保证数据包的顺序、完整性和重复,因此在实现文件传输时,需要自定义一套机制来确保数据的正确接收和重组。 1. **创建UDP套接字**:在Qt中,可以使用`QUdpSocket`类来创建和管理UDP套接字。首先,需要实例...

    UDP简单文件传输

    与TCP相比,UDP提供了较少的错误检测和流量控制机制,因此它更注重速度和效率,常用于实时应用如在线视频、语音通话以及简单的文件传输。 在这个“UDP简单文件传输”项目中,开发人员利用MFC(Microsoft Foundation...

    实现UDP可靠文件传输

    总结起来,实现UDP可靠文件传输的关键在于设计和实现一套完整的可靠性机制,包括序列号、确认、重传策略等,并结合C#的网络编程API来构建高效且可靠的文件传输系统。在实际项目中,还需要考虑网络环境的变化、安全性...

    基于udp的文件传输

    本项目是关于基于UDP实现的简单文件传输,尽管可能在传输的完整性和可靠性上有所欠缺,但作为学习和理解UDP协议的基础实践,具有一定的价值。 首先,我们需要了解UDP的基本原理。UDP不建立连接,而是直接将数据报文...

    Java实现udp协议的文件传输

    在实现文件传输时,我们不能一次性发送整个文件,因为UDP的数据报大小受到限制(通常为65535字节)。因此,我们需要将文件拆分成多个小块,每个块作为一个独立的数据报发送。同时,为了确保接收端能正确组装文件,...

    UDP实现可靠的文件传输

    ### UDP实现可靠的文件传输 #### 一、引言 UDP(User Datagram Protocol)是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。由于UDP本身并不具备差错检测与重传机制,因此当需要通过UDP来传输...

    Qt网络UDP的文件传输

    基于 Qt 的 UDP 传输是指使用 Qt Framework 实现的基于用户数据报协议(UDP)的文件传输。UDP 是一个轻量级的、不可靠的、面向数据报的无连接协议,常用于实时性要求高、安全性要求不高的场景,例如在线视频直播、...

    udp文件传输-有源码

    通过上述分析,我们可以看到,虽然UDP协议本身不具备高度的可靠性,但通过合理的机制设计和实现,完全可以在UDP的基础上构建出既高效又可靠的文件传输系统。这种方案尤其适用于对实时性有较高要求,但同时需要保证...

    基于UDP的文件传输DEMO(C#编程实现,可运行)

    【基于UDP的文件传输DEMO】是C#编程语言实现的一种简单但实用的文件传输解决方案。UDP(User Datagram Protocol)是一种无连接的、不可靠的传输协议,它以较小的开销提供了较高的传输速度,因此在某些场景下,如实时...

    基于UDP大文件传输.rar

    综上所述,这个基于UDP的大文件传输实现可能涉及了诸如分包策略、序列号管理、确认机制、重传策略以及拥塞控制等多个复杂的技术点。通过理解和应用这些技术,开发者可以构建出一个高效且可靠的UDP大文件传输系统。...

    网络程序设计-基于UDP的文件传输

    本文将详细介绍一个基于用户数据报协议(User Datagram Protocol, UDP)实现的文件传输程序的设计与实现原理。该程序由两个部分组成:客户端和服务端。客户端负责读取本地文件并将其通过UDP发送到服务端;服务端接收...

    基于TCPUDP的文件传输

    本项目“基于TCP/UDP的文件传输”着重探讨了如何利用这两种协议进行文件的可靠传输,特别是在实现UDP的可靠性方面。 TCP是一种面向连接的协议,它提供了可靠的、基于字节流的数据传输服务。TCP通过三次握手建立连接...

    UDP实现异步传输文件

    综上所述,利用UDP实现异步传输文件需要对网络编程有深入理解,包括数据分片、错误处理、流控以及数据完整性保障等方面。同时,C/S模式的实现也需要考虑并发处理和性能优化,以适应大规模的文件传输需求。

    UDP 文件传输 学习QQ文件传输

    通过上述学习,你可以实现一个简单的UDP文件传输程序,但要注意,这需要一定的网络编程基础和实践经验。在实际应用中,对于需要高度可靠性的文件传输,TCP通常仍是首选,而UDP更适合那些对速度和实时性有更高要求的...

Global site tag (gtag.js) - Google Analytics