java利用udp实现发送数据
作者:佑佑有话说 发布时间:2023-03-21 18:30:49
标签:java,udp,发送数据
本文实例为大家分享了java利用udp实现发送数据的具体代码,供大家参考,具体内容如下
1.udp的特点
数据以包的形式发送数据
udp是面向无连接的
udp会丢失数据,是一种不安全的连接
udp的传输速度较快
2.发送端
package cn.uu710.SocketTest;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class Send1 {
public static void main(String[] args) {
try {
DatagramSocket datagramSocket = new DatagramSocket();
String data = "这是张佑发送的消息!";
DatagramPacket datagramPacket = new DatagramPacket(data.getBytes(),data.getBytes().length,InetAddress.getLocalHost(),8088);
//发送
System.out.println("正在准备发送……");
datagramSocket.send(datagramPacket);
System.out.println("已发送……");
datagramSocket.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3.接收端
package cn.uu710.SocketTest;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import com.sun.org.apache.bcel.internal.generic.NEW;
public class receive1 {
public static void main(String[] args) {
try {
DatagramSocket datagramSocket = new DatagramSocket(8088);
byte[] b = new byte[1024];
DatagramPacket datagramPacket = new DatagramPacket(b,b.length);
System.out.println("正在准备接收……");
//未接收之前为阻塞状态
datagramSocket.receive(datagramPacket);
System.out.println("接收内容:"+new String(b,0,b.length));
System.out.println("已经接收……");
datagramSocket.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
4. 运行程序
先启动接收端,再运行发送端
启动接收端后,程序并未停止,因为还未接收到消息
再启动发送端,此时接收端成功接收到消息,之后程序停止
来源:https://blog.csdn.net/YOUYOU0710/article/details/106319753
0
投稿
猜你喜欢
- 本文介绍了 SpringBoot之Controller的使用,分享给大家,具体如下:1.@Controller:处理http请求 2.@Re
- 项目数据库中出现许多值为中括号[]的数据,测试报了bug,经过排查是因为使用了json-lib 的jar包导致。json-lib在将xml字
- 前言:使用 interrupt 来通知线程停止运行,而不是强制停止!普通情况停止线程public class Right
- 前言上一节我们说到从HttpWebHandlerAdapter的handle方法说起到DispatcherHandler的调用流程那么Htt
- 前言今天遇到一个问题,我们有个ip.dat二进制文件,通过里面内容可以解析ip所在的地域信息,本地单元测试都是OK的,部署到测试环境后,发现
- 前言${} 和 #{} 都是 MyBatis 中用来替换参数的,它们都可以将用户传递过来的参数,替换到 MyBatis 最终生成的
- System.out.print("\b") 会在控制台下往回删掉一个字符,如果你想回删多个字符就打印多个 "
- 由于springboot常用war包部署,改为cloud开发模式多端口情况下,部署反而不习惯毕竟,war包要不要项目名访问都必须放在tomc
- 重写addResourceHandlers映射文件路径在看一个博客源码发现页面的图片所映射的地址在SpringBoot静态资源文件夹下找不到
- 本文介绍WPF一种自定义按钮的方法。实现效果使用图片做按钮背景;自定义鼠标进入时效果;自定义按压效果;自定义禁用效果实现效果如下图所示:实现
- 自定义starterSpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进 starter,应用
- 本文介绍IntelliJ IDEA中Project 窗口的一些设置技巧,参考IntelliJ IDEA 简体中文专题教程,英文好的同学可以查
- 感谢《Android源码设计模式解析与实战》 何红辉 关爱民 著适配器模式在我们的开发中使用率极高,从代码中随处可见的Adapter就可以判
- 我们知道java程序是运行在JVM中的,而JVM就是构建在内存上的虚拟机,那么内存模型JMM是做什么用的呢?我们考虑一个简单的赋值问题:in
- 在 fluro 中,定义路由处理器 Handler 时可以指定该页面的默认转场形式,或者在使用 navigateTo 方法是可以设置页面跳转
- Eclipse提供了一个可扩展插件的开发系统。这就使得Eclipse在运行系统之上可以实现各种功能。这些插件也不同于其他的应用(插件的功能是
- 前言 红包文化源远流长。从古时的红色纸包,到手
- 目录引言配置yml文件创建数据源配置类为每个数据库创建配置类引言今天为大家带来一些非常有用的实战技巧,比如在我们需要对两个数据库进行操作的时
- 前言悬浮窗是一种比较常见的需求。例如把视频通话界面缩小成一个悬浮窗,然后用户可以在其他界面上处理事情。本文给出一个简单的应用内悬浮窗实现。可
- 作为最基础的引用数据类型,Java 设计者为 String 提供了字符串常量池以提高其性能,那么字符串常量池的具体原理是什么,我们带着以下三