1.客户端代码

 1 import java.io.IOException;
2 import java.net.DatagramPacket;
3 import java.net.DatagramSocket;
4 import java.net.InetAddress;
5
6 public class UDPClient {
7 public static void main(String[] args) throws IOException {
8 //1.定义服务器的地址、端口号,数据
9 InetAddress address = InetAddress.getByName("localhost");
10 int port = 8800;
11 byte[] data = "用户名:admin; 密码:123".getBytes();
12 //2.创建数据报,包含发送的数据信息
13 DatagramPacket packet = new DatagramPacket(data, data.length,address,port);
14 //3.创建DatagramSocket 对象
15 DatagramSocket socket = new DatagramSocket();
16 //4.向服务器端发送数据报
17 socket.send(packet);
18 /**
19 * 接收服务器端响应的数据
20 */
21 //1.创建数据报,用于接收服务器端响应的数据
22 byte[] data2 = new byte[1024];
23 DatagramPacket packet2 = new DatagramPacket(data2, data2.length);
24 //2.接收服务器响应的数据
25 socket.receive(packet2);
26 //3.读取数据
27 String reply = new String(data2, 0, packet2.getLength());
28 System.out.println("我是客户端,我收到的服务器信息:" + reply);
29 //4.关闭资源
30 socket.close();
31 }
32 }

2.服务器端代码

 1 import java.io.IOException;
2 import java.net.DatagramPacket;
3 import java.net.DatagramSocket;
4 import java.net.InetAddress;
5 /**
6 *
7 * UDP 服务器端
8 *
9 */
10 public class UDPServer {
11 public static void main(String[] args) throws IOException {
12 //1.创建服务器端DatagramSocket,指定端口
13 DatagramSocket socket = new DatagramSocket(8800);
14 //2.创建数据报,用于接收客户端发送的数据
15 byte[] data = new byte[1024];//创建字节数组,指定接收的数据包的大小。
16 DatagramPacket packet = new DatagramPacket(data, data.length);
17 //3.接收客户端发送的数据
18 System.out.println("****服务器端已经启动,等待客户端发送信息");
19 socket.receive(packet);//此方法在接收到数据报之前会一直阻塞
20 //4.读取数据
21 String info = new String(data, 0, packet.getLength());
22 System.out.println("我是服务器,客户端说:" + info);
23
24 /**
25 * 向客户端响应数据
26 */
27 //1.定义客户端的地址、端口号,数据
28 InetAddress address = packet.getAddress();
29 int port = packet.getPort();
30 byte[] data2 = "欢迎您!".getBytes();
31 //把数据发送给客户端
32 DatagramPacket packet2 = new DatagramPacket(data2, data2.length,address,port);
33 socket.send(packet2);
34 //4.关闭socket
35 socket.close();
36 }
37 }

Java UDP 编程的更多相关文章

  1. Java UDP网络编程 - 最简单示例

    UDP也是网络通讯中的一个重要协议,与TCP区别可参见浅谈TCP/IP 和 UDP的区别,本文就对Java UDP通讯做一个简单例子介绍 服务端: package wyf; import java.i ...

  2. java 网络编程-tcp/udp

    --转自:http://blog.csdn.net/nyzhl/article/details/1705039 直接把代码写在这里,解释看这里吧:http://blog.csdn.net/nyzhl/ ...

  3. 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤

    福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟   ...

  4. Java网络编程UDP通信原理

    前言 继续今天我们的Java网络编程--TCP和UDP通信 一.TCP和UDP概述 传输层通常以TCP和UDP协议来控制端点与端点的通信   TCP UDP 协议名称 传输控制协议 用户数据包协议 是 ...

  5. java socket编程(li)

    一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输.在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以 ...

  6. Java 网络编程学习总结

    新手一枚,Java学习中,把自己学习网络编程的知识总结一下,梳理下知识,方便日后查阅,高手莫进. 本文的主要内容: [1]    网络编程认识                [2]  TCP/IP编程 ...

  7. java socket编程(网络编程)

    一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...

  8. Java Socket编程

    Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...

  9. Java Socket编程题库

    一.    填空题 ___ IP地址____用来标志网络中的一个通信实体的地址.通信实体可以是计算机,路由器等. 统一资源定位符URL是指向互联网"资源"的指针,由4部分组成:协议 ...

随机推荐

  1. Protocol基本概念

    1.protocol 基本概念 Protocol翻译过来, 叫做"协议" 在写java的时候都会有接口interface这个概念,接口就是一堆方法的声明没有实现,而在OC里面Int ...

  2. k8s之list-watch机制、节点调度以及亲和性

    k8s之list-watch机制.节点调度以及亲和性 目录 k8s之list-watch机制.节点调度以及亲和性 一.list-watch机制 1. list-watch介绍 2. list-watc ...

  3. 系统操作命令实践 下(系统指令+增删改查+vim编辑器)

    目录 1.考试 2.今日问题 3.今日内容 4.复制文件 4.移动文件 Linux文件查看补充 cat , nl 5.删除文件 6.系统别名 7.vi/vim编辑器 系统操作命令实践 下(系统指令+增 ...

  4. Pytorch技法:继承Subset类完成自定义数据拆分

    我们在<torch.utils.data.DataLoader与迭代器转换>中介绍了如何使用Pytorch内置的数据集进行论文实现,如torchvision.datasets.下面是加载内 ...

  5. Linux海王 之 pdsh (并行管理工具)

    文章目录 安装 使用 示例 -w 指定主机 -l 指定用户 -g指定用户组 主机列表 交互式界面 pdsh是一个多线程远程shell客户机,它在多个远程主机上并行执行命令 pdsh可以使用几种不同的远 ...

  6. SpringBoot 自定义参数类型转换convert

    创建一个配置类.使用 @bean注入到容器中 @Bean public WebMvcConfigurer webMvcConfigurer(){ /** * 实现自定义的addConverter */ ...

  7. docker 批量删除 none 镜像

    在使用 docker images 命令的时候,经常会在列表中看到 <none>:<none> 的镜像. 这种镜像在 Docker 官方文档中被称作 dangling imag ...

  8. vue3-hash-calendar,一款基于vue3.x开发的移动端日期时间选择组件

    在大家的催更下,鸽了一天又一天,vue3-hash-calendar 终于在今天诞生了. 按照惯例,先上效果图 Demo 扫描上方二维码或者请用浏览器的手机模式查看:https://www.hxkj. ...

  9. 实践GoF的23种设计模式:SOLID原则(上)

    摘要:本文以我们日常开发中经常碰到的一些技术/问题/场景作为切入点,示范如何运用设计模式来完成相关的实现. 本文分享自华为云社区<实践GoF的23种设计模式:SOLID原则(上)>,作者: ...

  10. 宿主机ping不通虚拟机,虚拟机能ping通宿主机

    最近,微信提升群里好几个小伙伴遇到了如题的问题. 问了下原因,原来是我说的把宿主机网卡ip获取方式改为自动,结果他们把宿主机上虚拟网卡的ip改为自动了. 当然,分析"宿主机ping不通虚拟机 ...