Java 使用UDP传输一个小文本文件

工具1:Eclipse

工具2:IntelliJ IDEA

Java工程的目录结构(基于IntelliJ IDEA)

例1.1:接收方,因为接收到的数据是字节流,为了方便,这里是基于Apache commons IO,将字节流读到一个文本文档中。

 1 import org.apache.commons.io.FileUtils;
 2
 3 import java.io.File;
 4 import java.io.IOException;
 5 import java.net.DatagramPacket;
 6 import java.net.DatagramSocket;
 7
 8 public class Receiver {
 9
10     public static void main(String[] args) throws IOException {
11         DatagramSocket you = new DatagramSocket(6666);
12         byte[] buffer = new byte[1024 * 8];
13         DatagramPacket datagramPacket = new DatagramPacket(buffer, 0, buffer.length);
14         you.receive(datagramPacket);
15         FileUtils.writeByteArrayToFile(new File("postcard.txt"), datagramPacket.getData(), 0, datagramPacket.getLength());
16         System.out.println(FileUtils.readFileToString(new File("postcard.txt"), "UTF-8"));
17         you.close();
18     }
19 }

Java工程的目录结构(基于Eclipse)

例1.2:发送方,发送一个名为postcard的文本文档。因为传输的是字节流,所以需要将文本文档转换为字节数组,为了方便,这里是基于Apache commons IO,将文本文档的内容读到一个字节数组中。

 1 import java.io.File;
 2 import java.io.IOException;
 3 import java.net.DatagramPacket;
 4 import java.net.DatagramSocket;
 5 import java.net.InetSocketAddress;
 6
 7 import org.apache.commons.io.FileUtils;
 8
 9 public class Sender {
10
11     public static void main(String[] args) throws IOException {
12         DatagramSocket i = new DatagramSocket(8888);
13         byte[] buffer = FileUtils.readFileToByteArray(new File("postcard.txt"));
14         DatagramPacket datagramPacket = new DatagramPacket(buffer, 0, buffer.length, new InetSocketAddress("localhost", 6666));
15         i.send(datagramPacket);
16         i.close();
17
18         System.out.println("I sent you a postcard.");
19     }
20 }

先运行接收方,再运行发送方。如果都能顺利运行,接收方的控制台输出接收到的内容。例如我的是:

I miss you.

原文地址:https://www.cnblogs.com/Satu/p/10884508.html

时间: 2024-10-11 21:33:15

Java 使用UDP传输一个小文本文件的相关文章

java操作xml的一个小例子

最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要定义好bean的层次结构就可以了,第三方包会自动生成和解析xml. 但是今天发现,这个包有两个问题: 一个是比较复杂(我是菜鸟,求别喷,我真的觉得他挺复杂的..).比如说你要想处理既有属性又有值的xml就比较麻烦.(@XStreamConverter注解这种方法报这个错:com.thoughtwor

java连接mysql的一个小例子

想要用java 连接数据库,需要在classpath中加上jdbc的jar包路径 在eclipse中,Project的properties里面的java build path里面添加引用 连接成功的一个小例子数据库如下如 代码 package query; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; impor

JAVA数据库应用的一个小例子

自己随便写的,以炉石为背景,写一个参考用的小例子,先上SQL表: if OBJECT_ID('card_pool') is not null drop table card_pool; create table card_pool( card_id int identity(1,1) not null, card_name varchar(32), card_occupation varchar(32), --卡牌职业:中立.德鲁伊.猎人.法师.圣骑士.牧师.潜伏者.萨满祭司.术士.战士 car

java中UDP传输协议

package pack; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; /*public class Demo { public static void main(Stri

java图书管理的一个小模块(增删改查,不使用数据库)

图书管理模块:某图书管需要对图书进行信息化管理,要求管理员能够进行新增图书,能按照书名进行模糊查看图书能进行价格统计 系统实现如下:1.新增2.查询3.统计价格 1请输入新书:图书号,书名,作者,价格 新增成功,选择其他操作1.新增2.查询3.统计价格 2请输入书名:水1002,水浒传,施耐庵,1081003,喝水好处多,张三,199 选择其他操作1.新增2.查询3.统计价格 3总计:图书10本,价格1020元 //////////////////////////////////////////

一个小栗子聊聊JAVA泛型基础

背景 周五本该是愉快的,可是今天花了一个早上查问题,为什么要花一个早上?我把原因总结为两点: 日志信息严重丢失,茫茫代码毫无头绪. 对泛型的认识不够,导致代码出现了BUG. 第一个原因可以通过以后编码谨慎的打日志来解决,我们今天主要来一起回顾下JAVA泛型基础. 一个小栗子 先看下面一个例子,test1实例化一个List容器的时候没有指定泛型参数,那么我们可以往这个容器里面放入任何类型的对象,这样是不是很爽?但是当我们从容器中取出容器中的对象的时候我们必须小心翼翼,因为容器中的对象具有运行时的类

浅析Java网络编程之UDP传输(一)

网络传输方式一般有两种--TCP和UDP.本文用于简单了解一下UDP传输方式. 一.UDP有何特点? 1.面向无连接的: 2.面向报文的,且每一份报文不超过64KB: 3.不可靠但高效(不用建立连接): 4.支持一对一.一对多.多对一.多对多的交互通讯: 对于这些特点,没有什么为什么,事实而已啦! 二.在Java中怎么玩UDP? 在Java中,将建立UDP服务相关操作封装到了DatagramSocket类中,将数据报相关操作封装到了DatagramPacket类中. 三.具体玩的思路是什么? U

JAVA中TCP和UDP传输例子的对比

在本文中我将学到的java中的UDP和TCP在局域网内的传输做了对比,这里强调 的是局域网范围内,非广域网.首先,下面的是我写的在局域网内利用java中的UDP协议写的一个传输文件或者图片的类. --------------------------------------------------------------------------------------------------------------------------------------------------------

黑马程序员——Java网络编程之UDP传输

网络编程 网络模型 通讯要素:InetAddress(对象):ip地址,网络中设备的标识,不可记忆,可用主机名,本地回环地址:127.0.0.1主机名localhost 端口号 传输协议:UDP,将数据的源及目的封装成数据包中,不需要建立连接,每个数据包的大小限制在64K内,无连接,是不可靠协议,不需要建立连接,速度快.力求速度,不求数据的准确性.比如聊天软件,网络会议. TCP:建立连接,形成传输数据的通道,在连接中进行大数据量传输,通过三次握手完成连接,是可靠协议,必须建立连接效率稍低. S