java网络编程 UDP通信协议实现局域网内文件的发送和接收

简介: java网络编程 UDP通信协议实现局域网内文件的发送和接收

要实现两台内网下的机子进行通信,首先得知道接收方的内网IP,获取IP的方式;可以打开任务管理器的以太网进行查看;

如下

 

也可以通过 win+r 输入cmd ,然后输入 ipconfig  回车  进行查看接收端的内网ip

 

下来是代码部分;

我现在要将E盘下的的LCD1602的PDF文件发送到192.168.1.6()

发送端代码:

import java.io.*;
import java.net.*;
public class UDP_Send {
    public static void main(String[] args) throws Exception {
        //文件io
        File file = new File("E:\\Documets\\Desktop\\C51\\芯片资料\\LCD1602数据手册.pdf");  //发送的文件路径
        FileInputStream fis = new FileInputStream(file);
 
        //网络编程
        DatagramSocket socket = new DatagramSocket();
        byte[]bytes = new byte[1024];
        DatagramPacket packet;
 
        int len ;
        do {
            len=fis.read(bytes);
            packet = new DatagramPacket(bytes,bytes.length,InetAddress.getByName("192.168.1.6"),10000);
            socket.send(packet);
        }while (len !=-1);
 
        byte[] a=new byte[0];
        packet = new DatagramPacket(a,a.length,InetAddress.getByName("192.168.1.6"),10000);
        socket.send(packet);        //发送空包,代表发送完毕
        socket.close();
        System.out.println("向"+packet.getAddress().toString()+"发送文件完毕!端口号为:"+packet.getPort());
    }
}

接收端:

将文件保存到  F盘下  并且命名为  单片机LCD1602

import java.io.*;
import java.net.*;
 
public class UDP_Reception {
    public static void main(String[] args) throws Exception {
        File file = new File("F:\\单片机LCD1602.pdf");  //要接收的文件存放路径
        FileOutputStream output = new FileOutputStream(file);           //使用字节流输出文件,送到上面的文件路径下
        byte[] data=new byte[1024];
        DatagramSocket ds=new DatagramSocket(10000);//声明接收端口 号
        DatagramPacket dp=new DatagramPacket(data, data.length);
        int len ;   //数据长度
        do {
            ds.receive(dp);
            len = dp.getLength();
            output.write(data,0, data.length);
            output.flush();
        }while (len>0);
 
        ds.close();     //关闭传送管道
        System.out.println("接收来自"+dp.getAddress().toString()+"的文件已完成!对方所使用的端口号为:"+dp.getPort());
    }
}

实验结果:

发送端运行结果,

 

接收端运行结果:

 

去F盘下查看文件

发现文件存在,并且可以正常打开。说明文件输送完成。

经过多次试验别的小文件均可,但是UDP协议是不可靠的,在进行大文件的传送的时候,有可能会丢包  ,导致整个文件内容错乱甚至是打不开。


相关文章
|
10月前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
382 1
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
373 0
|
机器学习/深度学习 存储 监控
内部文件审计:企业文件服务器审计对网络安全提升有哪些帮助?
企业文件服务器审计是保障信息安全、确保合规的关键措施。DataSecurity Plus 是由卓豪ManageEngine推出的审计工具,提供全面的文件访问监控、实时异常告警、用户行为分析及合规报告生成功能,助力企业防范数据泄露风险,满足GDPR、等保等多项合规要求,为企业的稳健发展保驾护航。
378 0
|
存储 人工智能 Java
java之通过Http下载文件
本文介绍了使用Java实现通过文件链接下载文件到本地的方法,主要涉及URL、HttpURLConnection及输入输出流的操作。
826 0
|
存储 监控 算法
基于 Python 跳表算法的局域网网络监控软件动态数据索引优化策略研究
局域网网络监控软件需高效处理终端行为数据,跳表作为一种基于概率平衡的动态数据结构,具备高效的插入、删除与查询性能(平均时间复杂度为O(log n)),适用于高频数据写入和随机查询场景。本文深入解析跳表原理,探讨其在局域网监控中的适配性,并提供基于Python的完整实现方案,优化终端会话管理,提升系统响应性能。
346 4
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
540 14
|
存储 Java 数据安全/隐私保护
Java技术栈揭秘:Base64加密和解密文件的实战案例
以上就是我们今天关于Java实现Base64编码和解码的实战案例介绍。希望能对你有所帮助。还有更多知识等待你去探索和学习,让我们一同努力,继续前行!
743 5
|
网络协议 安全 Java
实现Java语言的文件断点续传功能的技术方案。
像这样,我们就完成了一项看似高科技、实则亲民的小工程。这样的技术实现不仅具备实用性,也能在面对网络不稳定的挑战时,稳稳地、不失乐趣地完成工作。
635 0
|
监控 算法 JavaScript
基于 JavaScript 图算法的局域网网络访问控制模型构建及局域网禁止上网软件的技术实现路径研究
本文探讨局域网网络访问控制软件的技术框架,将其核心功能映射为图论模型,通过节点与边表示终端设备及访问关系。以JavaScript实现DFS算法,模拟访问权限判断,优化动态策略更新与多层级访问控制。结合流量监控数据,提升网络安全响应能力,为企业自主研发提供理论支持,推动智能化演进,助力数字化管理。
363 4
|
存储 监控 算法
基于 Python 哈希表算法的局域网网络监控工具:实现高效数据管理的核心技术
在当下数字化办公的环境中,局域网网络监控工具已成为保障企业网络安全、确保其高效运行的核心手段。此类工具通过对网络数据的收集、分析与管理,赋予企业实时洞察网络活动的能力。而在其运行机制背后,数据结构与算法发挥着关键作用。本文聚焦于 PHP 语言中的哈希表算法,深入探究其在局域网网络监控工具中的应用方式及所具备的优势。
402 7