网络编程:socket—基于 UDP 服务端编程|学习笔记

简介: 快速学习网络编程:socket—基于 UDP 服务端编程

开发者学堂课程【大数据 ZooKeeper 快速入门 网络编程:socket—基于 UDP 服务端编程】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/549/detail/7581


网络编程:socket—基于 UDP 服务端编程


一、socket—基于 UDP 协议编程

首先在 diea 中创建一个名为的类,创建完成后写一个 main 方法,以此来进行运行,输入 psvm 可快速写出 main 方法。

编程前梳理流程:

1. 在服务端创建服务端 socket 对象 DatagromSocket

2. 创建对象后需要接收数据,使用自带的方法接收数据

3. 接受数据后,因为原始数据是打包发送过来的,所以需要针对数据包进行解析,解析完成后才可以获取数据包中的内容

4. 最终进行释放资源

当逻辑清楚后再进行代码实现就更加简单。

代码实现:

public class UDPSocketServer {

public static void main(String[] args) throws Exception {

//创建服务端 socket 对象 DatagramSocket

//客户端向一个端口发送出去,所以这里需要一个端口接收,这个端口需要和客户端保持一致,所以 new 一个 DatagramSocket 对象,并且在里面输入端口号12321(需要和客户端端口保持一致),这样发送的数据才能被接收。这里需要抛出一个异常,直接抛出最大的异常 throws Exception

DatagramSocket server = new DatagramSocket(12321);

//接收数据,通过 server 接收数据,在其中调用 receive 包,创建一个 packet 包来进行接收数据,因此在接收数据时还要创建数据包

server.receive(packet);

//创建接收数据的数据包(数据接收的容器)

//创建 bys 数组进行存放,限制大小

byte[] bys = new byte[1024];

//传 入 bys,并指定 bys 长度,这样就创好了接收数据的容器,服务端就可以接收由客户端发送的数据包,接下来就要对数据包进行解析

DatagramPacket_packet = new DatagramPacket(bys, bys.length);

//针对数据包进行解析

//获取地址和主机名,创建host进行存放

String host = packet.getAddress().getHostAddress();

//通过 packet 进行获取数据并放入 byte[]数组中

byte[] data = packet.getData();

//直接进行打印接收到的数据,这样就完成了接收数据包的解析

System.out.println("接收来自"+host+"信息: "+new String(data));

//释放资源,对 server 进行关闭

Server.close();

}}

//完成基于 udp 协议的编写

直接右键运行 main 方法进行测试,切换到服务端发现成功接收到了信息:

接收来自192.168.158.1信息,hello udp?

这就是基于 udp 的 socket 通信

相关文章
|
5天前
|
存储 网络协议 数据处理
【Socket】解决UDP丢包问题
UDP(用户数据报协议)是一种无连接的传输层协议,因其不保证数据包的顺序到达和不具备内置重传机制,导致在网络拥塞、接收缓冲区溢出或发送频率过快等情况下容易出现丢包现象。为应对这些问题,可以在应用层实现重传机制、使用前向纠错码等方法。这些方法在一定程度上可以缓解UDP通信中的丢包问题,提高数据传输的可靠性和效率。
|
7天前
|
移动开发 Java
Java Socket编程 - 基于Socket实现HTTP下载客户端
Java Socket编程 - 基于Socket实现HTTP下载客户端
13 1
|
7天前
|
监控 网络协议 Java
Java Socket编程 - 基于TCP方式的二进制文件传输
Java Socket编程 - 基于TCP方式的二进制文件传输
11 0
|
7天前
|
网络协议 Java
Java Socket编程 - 基于TCP方式的客户服务器聊天程序
Java Socket编程 - 基于TCP方式的客户服务器聊天程序
12 0
|
7天前
|
移动开发 Java API
Java Socket编程 - 简单的问候服务实现
Java Socket编程 - 简单的问候服务实现
9 0
|
7天前
|
Java
Java Socket编程 - 获取WEB站点主页信息
Java Socket编程 - 获取WEB站点主页信息
8 0
|
7天前
|
网络协议 Python
python中socket编程
python中socket编程
|
8天前
|
移动开发 网络协议 视频直播
25.Python 网络编程:TCP和UDP编程
25.Python 网络编程:TCP和UDP编程
15 2
|
8天前
|
网络协议 Unix API
24.Python 网络编程:socket编程
24.Python 网络编程:socket编程
14 2