当前位置: 首页 > news >正文

第十七节:第三部分:网络通信:UDP通信,一发一收,多发多收

UDP通信介绍

UDP通信介绍

DatagramSocket类提供的方法

DatagramSocket类提供的方法

使用UDP通信实现:发送消息、接收消息

使用UDP通信实现:发送消息、接收消息

客户端可以反复发送数据步骤

客户端可以反复发送数据步骤
接收端可以反复接收数据步骤

UDP总结

UDP总结

代码:

代码一:完成UDP通信快速入门:实现1发1收

Server类

package com.itheima.day2_udp;import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;/*
* 目标:完成UDP通信快速入门-服务端开发
* */
public class Server {public static void main(String[] args) throws Exception {System.out.println("----服务端启动----");// 1、创建一个服务端对象(创建一个接韭菜的人) 注册端口DatagramSocket socket = new DatagramSocket(6666);// 2、创建一个数据包对象,用于接收数据的(创建一个韭菜盘子)byte[] buffer = new byte[1024*64];// 64KB.DatagramPacket packet = new DatagramPacket(buffer, buffer.length);// 3、开始正式使用数据包来接收客户端发来的数据socket.receive(packet);// 4、从字节数组中,把接收到的数据直接打印出来// 接收多少就倒出多少//获取本次数据包接收了多少数据。int len = packet.getLength();String rs = new String(buffer, 0, len);System.out.println(rs);System.out.println(packet.getAddress().getHostAddress());System.out.println(packet.getPort());socket.close();// 释放资源!}
}

Client类

package com.itheima.day2_udp;import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;/*
* 目标:完成UDP通信快速入门:实现1发1收
* */
public class Client {public static void main(String[] args) throws Exception {// 1、创建客户端对象(发韭菜出去的人)DatagramSocket socket = new DatagramSocket(7777);//2、创建数据包对象封装要发出去的数据(创建一个韭菜盘子)//参数一:封装要发出去的数据。//参数二:发送出去的数据大小(字节个数)//参数三:服务端的IP地址(找到服务端主机)//参数四:服务端程序的端口byte[] bytes = "我爱你飞鸟马时abc".getBytes();DatagramPacket packet = new DatagramPacket(bytes,bytes.length,InetAddress.getLocalHost(),6666);// 3、开始正式发送这个数据包的数据出去了socket.send(packet);System.out.println("客户端数据发送完毕~~~");socket.close();// 释放资源!}
}

结果1

代码二:完成UDP通信快速入门:实现多发多收

Server类

package com.itheima.day3_udp;import java.net.DatagramPacket;
import java.net.DatagramSocket;/*
* 目标:完成UDP通信快速入门-服务端开发
* */
public class Server {public static void main(String[] args) throws Exception {System.out.println("----服务端启动----");// 1、创建一个服务端对象(创建一个接韭菜的人) 注册端口DatagramSocket socket = new DatagramSocket(6666);// 2、创建一个数据包对象,用于接收数据的(创建一个韭菜盘子)byte[] buffer = new byte[1024*64];// 64KB.DatagramPacket packet = new DatagramPacket(buffer, buffer.length);while (true) {// 3、开始正式使用数据包来接收客户端发来的数据socket.receive(packet);// 4、从字节数组中,把接收到的数据直接打印出来// 接收多少就倒出多少//获取本次数据包接收了多少数据。int len = packet.getLength();String rs = new String(buffer, 0, len);System.out.println(rs);System.out.println(packet.getAddress().getHostAddress());System.out.println(packet.getPort());System.out.println("---------------------------------");}}
}

Client类

package com.itheima.day3_udp;import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;/*
* 目标:完成UDP通信快速入门:实现多发多收
* */
public class Client {public static void main(String[] args) throws Exception {// 1、创建客户端对象(发韭菜出去的人)DatagramSocket socket = new DatagramSocket();//2、创建数据包对象封装要发出去的数据(创建一个韭菜盘子)//参数一:封装要发出去的数据。//参数二:发送出去的数据大小(字节个数)//参数三:服务端的IP地址(找到服务端主机)//参数四:服务端程序的端口Scanner sc = new Scanner(System.in);while (true) {System.out.println("请说:");String msg = sc.nextLine();byte[] bytes = msg.getBytes();// 一旦发现用户输入的exit命令,就退出客户端if ("exit".equals(msg)) {socket.close();//释放资源break;// 跳出死循环}DatagramPacket packet = new DatagramPacket(bytes,bytes.length,InetAddress.getLocalHost(),6666);// 3、开始正式发送这个数据包的数据出去了socket.send(packet);}}
}

结果2

http://www.lryc.cn/news/585347.html

相关文章:

  • 汽车级MCU选型新方向:eVTOL垂桨控制监控芯片的替代选型技术分析
  • aaa认证
  • lora网关
  • 如何选择数据可视化工具?从设计效率到图表表现力全解读
  • OD(OllyDbg)使用介绍
  • day02-数组part02
  • 网络安全初级小练
  • 【前端】【组件库开发】【原理】【无框架开发】现代网页弹窗开发指南:从基础到优化
  • Oracle字符类型详解:VARCHAR、VARCHAR2与CHAR的区别
  • 业务建模如何让金融数字化转型 “轻” 装上
  • 林吉特危机下的技术革命:马来西亚金融系统升维作战手册
  • axios 与 fetch 的区别
  • wpf Canvas 导出图片
  • 飞算JavaAI:重构Java开发的“人机协同”新范式
  • 使用浏览器inspect调试wx小程序
  • 功能测试知识总结
  • 【TCP/IP】17. 移动 IP
  • 深度学习篇---松科TPU部署代码分析
  • sqli-labs靶场通关笔记:第5-6关 报错注入
  • [Java 17] 无模版动态生成 PDF:图片嵌入与动态表格渲染实战
  • C++内存泄漏高效定位与排查指南
  • 使用云虚拟机搭建hadoop集群环境
  • Telegraf vs. Logstash:实时数据处理架构中的关键组件对比
  • docker-compose安装常用中间件
  • SpringCloud之Eureka
  • 局域网联机游戏设置跨网跟他人异地联机玩的二种常用实现方法
  • docker 启动中间件
  • OKCC系统源码搭建需要准备什么
  • 制作一款打飞机游戏79:道具拾取系统
  • 前端面试专栏-算法篇:22.树结构(二叉树、B树、红黑树)