UDP数据报套接字编程

API介绍

对于UDP的Socket API来说,可以当成是一个Socket "文件",操作系统提供的一个API来操作网卡。

在java中提供了DatagramSocket 这样的API,用于发送和接收数据报:

DatagramSocket构造方法:

注:无参版本一般用于客户端,有参版本用于服务端。

DatagramSocket其他方法:

DatagramPacket构造方法:

该方法是UDP用来发送接收的数据报:

DatagramPacket方法:

InetSocketAddress(SocketAddress)构造方法

接下来我们实现一个回显服务器(客户端请求和服务器响应),简单模拟一下真实服务器场景。

服务端的实现

Server:

一、先准备一个Socket类型,并且定义服务端的构造方法
二、准备一个执行服务器的方法,里面满足三个步骤:

(1)读取请求并且解析

(2)根据请求,计算响应

(3)把响应返回给客户端

(4)记录日志,观察执行结果

三、主函数创建服务器并执行

客户端的实现

Client:

一、准备一个Socket类型,用于发送数据报,再定义连接的服务器的IP和端口号

(由于当前是在本机运行,IP地址为"127.0.0.1")

二、定义执行方法,里面包含着三个步骤:

(1)输入需要发送的数据

(2)构造并发送数据报

(3)接收并显示服务器的响应

三、定义主函数执行

客户端和服务端的交互

因为服务器是7*24小时工作的,所以我们需要一个死循环来模拟一下服务器

客户端也可以使用死循环来模拟请求

服务端代码:

客户端代码:

具体展示:

相关推荐
dog2504 分钟前
长肥管道下的 CUBIC
网络
呉師傅13 分钟前
Win7剪切文件变成复制文件如何修改【资源管理器异常类故障】
运维·网络·windows·电脑
honsor17 分钟前
机房动环实战:H-THDRJ45 双网口温湿度变送器 Modbus RTU RS485 冗余组网方案
运维·服务器·网络
洋不写bug19 分钟前
HTTP(一):Fiddler下载、抓包请求响应解析
网络协议·http·fiddler·网络通信·抓包·http请求和响应
快乐的韭菜根根24 分钟前
Slurm 指定 GPU 卡:`File=/dev/nvidiaX` 映射的坑与修复
java·服务器·网络
隐擎fox29 分钟前
解密 HTTP/2 帧时序与流控指纹:Akamai H2 指纹逆向检测与协议重塑工程实战
网络·网络协议·tcp/ip·http
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】Trae生成main方法
网络·人工智能·网络协议·http·架构·1024程序员节
隔窗听雨眠1 小时前
从行为引导到基础设施约束:AGI代理风险缓解的工程化路径
网络·人工智能·agi
pt10431 小时前
Cisco设备网络安全系列-16:微服务、Kubernetes与无服务器架构安全
网络·安全·微服务·架构
SatanII2 小时前
Kubernetes 网络
网络·容器·kubernetes