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协议是不可靠的,在进行大文件的传送的时候,有可能会丢包  ,导致整个文件内容错乱甚至是打不开。


目录
打赏
0
1
1
0
9
分享
相关文章
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
109 11
解读 C++ 助力的局域网监控电脑网络连接算法
本文探讨了使用C++语言实现局域网监控电脑中网络连接监控的算法。通过将局域网的拓扑结构建模为图(Graph)数据结构,每台电脑作为顶点,网络连接作为边,可高效管理与监控动态变化的网络连接。文章展示了基于深度优先搜索(DFS)的连通性检测算法,用于判断两节点间是否存在路径,助力故障排查与流量优化。C++的高效性能结合图算法,为保障网络秩序与信息安全提供了坚实基础,未来可进一步优化以应对无线网络等新挑战。
|
27天前
|
基于 PHP 语言深度优先搜索算法的局域网网络监控软件研究
在当下数字化时代,局域网作为企业与机构内部信息交互的核心载体,其稳定性与安全性备受关注。局域网网络监控软件随之兴起,成为保障网络正常运转的关键工具。此类软件的高效运行依托于多种数据结构与算法,本文将聚焦深度优先搜索(DFS)算法,探究其在局域网网络监控软件中的应用,并借助 PHP 语言代码示例予以详细阐释。
35 1
基于 Python 哈希表算法的局域网网络监控工具:实现高效数据管理的核心技术
在当下数字化办公的环境中,局域网网络监控工具已成为保障企业网络安全、确保其高效运行的核心手段。此类工具通过对网络数据的收集、分析与管理,赋予企业实时洞察网络活动的能力。而在其运行机制背后,数据结构与算法发挥着关键作用。本文聚焦于 PHP 语言中的哈希表算法,深入探究其在局域网网络监控工具中的应用方式及所具备的优势。
30 7
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
83 23
基于 C# 网络套接字算法的局域网实时监控技术探究
在数字化办公与网络安全需求增长的背景下,局域网实时监控成为企业管理和安全防护的关键。本文介绍C#网络套接字算法在局域网实时监控中的应用,涵盖套接字创建、绑定监听、连接建立和数据传输等操作,并通过代码示例展示其实现方式。服务端和客户端通过套接字进行屏幕截图等数据的实时传输,保障网络稳定与信息安全。同时,文章探讨了算法的优缺点及优化方向,如异步编程、数据压缩与缓存、错误处理与重传机制,以提升系统性能。
45 2
Go语言的网络编程与TCP_UDP
Go语言由Google开发,旨在简单、高效和可扩展。本文深入探讨Go语言的网络编程,涵盖TCP/UDP的基本概念、核心算法(如滑动窗口、流量控制等)、最佳实践及应用场景。通过代码示例展示了TCP和UDP的实现,并讨论了其在HTTP、DNS等协议中的应用。最后,总结了Go语言网络编程的未来发展趋势与挑战,推荐了相关工具和资源。
解锁“分享文件”高效密码:探秘 Java 二叉搜索树算法
在信息爆炸的时代,文件分享至关重要。二叉搜索树(BST)以其高效的查找性能,为文件分享优化提供了新路径。本文聚焦Java环境下BST的应用,介绍其基础结构、实现示例及进阶优化。BST通过有序节点快速定位文件,结合自平衡树、多线程和权限管理,大幅提升文件分享效率与安全性。代码示例展示了文件插入与查找的基本操作,适用于大规模并发场景,确保分享过程流畅高效。掌握BST算法,助力文件分享创新发展。
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
54 4