java实现TCP与UDP混合传输文件总结

本文总结了使用Java实现TCP与UDP混合传输文件的过程。首先,发送方通过TCP发送文件属性(如名称、大小)以确保接收方确认接收。接着,利用UDP进行高效的数据传输。文章详细介绍了发送方和接收方的实现策略,特别是如何在保证可靠性与速度之间取得平衡。
摘要由CSDN通过智能技术生成

java实现TCP与UDP混合传输文件总结


    最近在用java写基于UDP传输文件的网络,遇到了很多问题,也参考了很多人编写的程序,通过 自己的整理和设计,终于写完了自己程序,现在将在编程中遇到的问题总结一下。

发送方:
    首先发送方需要发送文件的一些属性给文件接收方,如文件的名称,文件的大小等,让文件接收方判断是否接受文件,由于这部分内容比较重要,不能出现丢包的现象,所以采用TCP/IP协议来传输文件,而在文件传输的时候,我们采用UDP协议传输,这样能让文件传输得更快。先看一下发送方代码。



    import java.awt.*;
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import java.util.concurrent.TimeUnit;
    import javax.swing.*;
    public class FileClient extends JFrame {
    
    FileDialog fd1 = null;
    DatagramSocket ds = null;
    DatagramPacket sendDp = null;
    static int sendDataLen = 10240;
    public byte[] sendBuff = new byte[sendDataLen];
    public InetAddress udpIP = null;
    static int udpPort = 10000;
    static int tcpPort = 9999;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        FileClient fc = new FileClient();
        fc.fileSender();

    }

    public void fileSender() {
        try {
            // 打开windows的文件对话框
            fd1 = new FileDialog(this, "请选择需要打开的文件", FileDialog.LOAD);
            fd1.setVisible(true);
            String filePath = fd1.getDirectory() + fd1.getFile();
            String location = filePath.replaceAll("\\\\", "/");
            System.out.println("绝对文件目录+文件名" + filePath);
            System.out.println("绝对文件目录+文件名" + location);
            DataInputStream dis = new DataInputStream(new BufferedInputStream(
                    new FileInputStream(location)));
            // 单位是字节
            int fileLen = dis.availab
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值