Java网络编程之UDP协议数据传输
2020-03-08 14:24
1531 查看
一、UDP数据传输方式
数据传递采用数据包方式传递,所有的数据要进行打包操作,并且没有对应的客户端服务器概念,有且只有发送段和接收端。
Socket 套接字
数据需要进行传递操作,在数据传递的两台计算机当中必须有对应的Socket。这里采用UDP协议,那么必须有一个UDP协议的Socket
DatagramSocket(); 创建一个发送端UDP协议Socket对象 DatagramSocket(int port); 创建一个接收端UDP协议的Socket对象,这里需要【监听】指定端口
发送端数据包的打包方法:
DatagramPacket DatagramPacket(byte[] buf, int length, InetAddress address, int port); buf: 需要传递数据的字节数组 length:是当前字节数组中数据容量字节数 address:接收端IP地址对象 port: 接收端对应的端口号
接收端数据包接收方式,需要准备一个空的数据包
DatagramPacket DatagramPacket(byte[] buf, int length); buf: 字节缓冲数组,通常是1024整数倍 length: 当前字节缓冲数组的容量
二、发送端
1、流程
1. 创建UDP服务器对应的发送端Socket 2. 准备对应数据包,需要带有指定数据 3. 发送数据 send 4. 关闭UDP发送端
2、代码
public class SenderDemo { public static void main(String[] args) throws IOException { System.out.println("发送端启动"); // 创建对应的Socket DatagramSocket socket = new DatagramSocket(); // 准备数据包 byte[] bytes = "来自发送端的数据".getBytes(); DatagramPacket packet = new DatagramPacket(bytes, bytes.length, InetAddress.getLocalHost(), 8848); // 发送数据包 socket.send(packet); // 关闭UDP发送端 socket.close(); } }
三、接收端
1、流程
1. 打开UDP服务,并且监听指定端口 2. 创建新的空数据包 3. 通过Socket接收数据 4. 关闭UDP服务接收端
2、代码
public class ReceiveDemo { public static void main(String[] args) throws IOException { // 创建Socket监听端口 DatagramSocket socket = new DatagramSocket(8848); // 准备空数据包 byte[] buf = new byte[1024]; DatagramPacket packet = new DatagramPacket(buf, buf.length); // 接收数据 socket.receive(packet); // 确定接收到的字节长度 int length = packet.getLength(); System.out.println(new String(buf, 0, length)); // 关闭socket socket.close(); } }
四、UDP数据传递丢失问题
当使用UDP协议进行数据传递时,有可能在传递内容较大时发生数据丢失的问题。发生这种情况的原因有很多,例如:
- 网络不够好,稳定性不行,带宽不够
- 电脑性能不好
- 点赞 3
- 收藏
- 分享
- 文章举报
相关文章推荐
- Java入门案例:网络编程UDP协议之发送和接收数据升级练习
- Java_网络编程_使用UDP协议发送及接收数据
- Java基础知识强化之网络编程笔记03:UDP之UDP协议发送数据 和 接收数据
- Java网络编程之TCP协议数据传输
- 网络编程—UDP协议传输接受与发送数据
- java 网络编程 [网络传输] [协议] [UDP与TCP] [套接字] [URL与URI]
- 黑马程序员_Java基础_网络编程_UDP传输协议编程,控制台聊天程序
- java 网络编程二 UDP传输协议(例:2个进程进行聊天)
- 黑马程序员——java网络编程中的传输协议:UDP和TCP
- Java入门案例:网络编程之UDP协议之发送和接收数据
- 黑马程序员--10.网络编程--02.【网络传输三要素在Java中的体现】【TCP和UDP概念】【Socket基本概念】
- 【23】网络编程1_UDP数据传输,TCP数据传输
- Java基础---Java---网络编程---TCP、UDP、UDP-键盘录入方式数据、Socket、TCP复制文件、UDP-聊天
- 网络编程_UDP协议发送和接收数据图解
- Java网络编程_基于UDP协议的网络编程
- python网络编程之UDP方式传输数据
- Java学习笔记52(网络编程:UDP协议案例)
- JAVA基础: 网络编程 TCP UDP协议
- 浅析Java网络编程之UDP传输(一)
- UNIX网络高级编程第2章传输层UDP TCP和SCTP 2.2总图2.3用户数据报协议2.4传输控制协议2.5SCTP