- 浏览: 1148422 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (138)
- JAVA基础 (22)
- Spring (6)
- 设计模式 (2)
- JDK源码 (3)
- java-功能组件 (4)
- 游戏项目 (2)
- linux (13)
- Oracle (2)
- struts (1)
- 字符集 (8)
- HTTP协议 (2)
- java-网络通信 (1)
- 工具软件推荐 (2)
- tomcat (1)
- java-容器框架 (2)
- java-IO框架 (2)
- java-多线程框架 (4)
- java-NIO框架 (0)
- jquery (2)
- 工具使用 (12)
- 加密解密 (1)
- redis (2)
- maven (2)
- svn (1)
- eclipse (1)
- mysql (11)
- 我的收藏 (1)
- JAVA进阶 (26)
- 运维 (3)
- protocol buffer (1)
- 优秀博主 (1)
- nginx (1)
- 算法 (2)
- 故障排查 (4)
- 粤语歌曲 (6)
- 生活总结 (6)
- 高并发 (4)
- 语言训练 (1)
- 读书笔记 (5)
- 诗歌 (1)
- tomcat源码学习 (1)
- 软件词汇 (1)
- git (1)
最新评论
-
ryuhi:
一个是来源source,一个是来源方序列号seq这两个数据要怎 ...
高并发的核心技术-幂等的实现方案 -
xuezhongyu01:
无量 写道Master-Gao 写道理论感觉还行,可以代码我还 ...
高并发的核心技术-幂等的实现方案 -
无量:
Master-Gao 写道理论感觉还行,可以代码我还是不会写。 ...
高并发的核心技术-幂等的实现方案 -
phil_jing:
@RequestParam 默认 true
SpringMVC注解@RequestParam全面解析 -
aguai0:
aguai0 写道第五条里的如果要获取任务执行结果,用Comp ...
JAVA进阶----ThreadPoolExecutor机制
java UDP通信的实现,代码如下
1、简单的通信
2、复杂的传输带类型的UDP通信
1、简单的通信
package com.out.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; /** * 1、创建客户端+端口 * 2、准备数据 字节数组 * 3、给数据打包 并指定发送的目的地和端口 * 4、发送 * 5、释放 * * 思考 : 发送有类型的数据 怎么处理 如对象 数字 等等 */ public class MyUDPClient { public static void main(String[] args) throws IOException { //1.创建客户端+端口 DatagramSocket client = new DatagramSocket(8888); //2.准备要发送的数据 字节数组 String msg = "UDP编程"; byte[] data = msg.getBytes("utf-8"); //3.给数据打包 并指定发送的目的地和端口 DatagramPacket(byte buf[], int length, InetAddress address, int port) InetAddress address = InetAddress.getByName("127.0.0.1"); DatagramPacket packet = new DatagramPacket(data, data.length, address, 9999); //4.发送 client.send(packet); //5.释放 client.close(); } }
package com.out.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; /** * 服务端 * 1、创建服务+端口 * 2、准备接受容器 byte数组 * 3、把接收容器封装成包 DatagramPacket * 4、接受数据 * 5、分析数据 */ public class MyUDPServer { public static void main(String[] args) throws IOException { //1.创建服务+端口 DatagramSocket server = new DatagramSocket(9999); //2.准备接受容器 byte[] container = new byte[1024]; //3.封装成包 DatagramPacket(byte buf[], int length) DatagramPacket packet = new DatagramPacket(container, container.length); //4.接受数据 (阻塞式接受) server.receive(packet); //5.分析数据 byte[] data = packet.getData(); System.out.println(new String(data, "utf-8")); //6.释放资源 server.close(); } }
2、复杂的传输带类型的UDP通信
package com.out.udp; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; /** * 字符串数据类型的通信 * 1、创建客户端+端口 * 2、准备数据 字节数组 * 3、给数据打包 并指定发送的目的地和端口 * 4、发送 * 5、释放 * * 思考 : 发送有类型的数据 怎么处理 如对象 数字 等等 * 1、创建客户端+端口 * 2、准备数据 把各种类型的数据转成--------》字节数组 *************************************** * 3、给数据打包 并指定发送的目的地和端口 * 4、发送 * 5、释放 */ public class SendDataTypeClient { public static void main(String[] args) throws IOException { //1.创建客户端+端口 DatagramSocket client = new DatagramSocket(8888); //2.准备要发送的数据 字节数组 double d = 123.23; byte[] data = convert(d); //3.给数据打包 并指定发送的目的地和端口 DatagramPacket(byte buf[], int length, InetAddress address, int port) InetAddress address = InetAddress.getByName("127.0.0.1"); DatagramPacket packet = new DatagramPacket(data, data.length, address, 9999); //4.发送 client.send(packet); //5.释放 client.close(); } /** * 字节数组 数据源 + Data输出流 * @param d * @return * @throws IOException */ public static byte[] convert(double d) throws IOException { byte[] data = null; //写入数据 ByteArrayOutputStream bos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(bos); dos.writeDouble(d); dos.flush(); //获取数据 data = bos.toByteArray(); dos.close(); return data; } }
package com.out.udp; import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; /** * 服务端 * 1、创建服务+端口 * 2、准备接受容器 byte数组 * 3、把接收容器封装成包 DatagramPacket * 4、接受数据 * 5、分析数据 将字节数组转换成--------》各种类型数据 * 6、释放资源 */ public class ReceiveDataTypeServer { public static void main(String[] args) throws IOException { //1.创建服务+端口 DatagramSocket server = new DatagramSocket(9999); //2.准备接受容器 byte[] container = new byte[1024]; //3.封装成包 DatagramPacket(byte buf[], int length) DatagramPacket packet = new DatagramPacket(container, container.length); //4.接受数据 (阻塞式接受) server.receive(packet); //5.分析数据 double data = convert(packet.getData()); System.out.println(data); //6.释放资源 server.close(); } public static double convert(byte[] data) throws IOException { DataInputStream dis = new DataInputStream(new ByteArrayInputStream(data)); double num = dis.readDouble(); dis.close(); return num; } }
发表评论
-
temp
2019-05-19 23:40 7484. 终端执行命令ssh-keygen -t rs ... -
UML类图关系详解
2017-10-24 19:07 1690一、背景介绍 UML类图的关系,或者说面向对象 ... -
Java线程Dump分析工具--jstack
2017-04-18 11:27 2539Java线程Dump分析工具--jstack (转htt ... -
jdk-源码中的一些坑
2017-02-13 15:17 1255jdk-源码中的一些坑 1. Runnable接口的命名简直 ... -
内存溢出和内存泄露的区别
2016-11-15 20:12 4123内存泄漏(Memory Leak) 1. 概念: 指你用在C语 ... -
System.getProperty()获取tomcat自定义变量
2016-07-26 15:26 2232System.getProperty()获取tomcat自定义 ... -
Java类初始化顺序
2016-05-04 17:24 1925package com.tongbanjie.trade.te ... -
Rpc转
2016-03-27 22:48 1038RPC框架几行代码就够了 博客分类: Java ... -
YY淘宝商品数据库设计(转)
2016-03-08 20:27 2770http://www.cnblogs.com/mmmj ... -
apache commons工具类简介
2015-07-27 14:02 5920一、Commons BeanUtils 说明:针对Bean的一 ... -
java获取客户端ip
2015-06-17 14:35 1694转:http://www.cnblogs.com/ITtan ... -
递归计算树结构当前节点包含多少级
2015-04-15 19:37 3924今天一个同事做,可变更目录结构时,遇到的计算当前节点包括节点下 ... -
JAVA基础----解决get方法传递URL参数中文乱码问题
2015-01-23 15:45 5798[转]解决get方法传递URL参数中文乱码问题 ... -
JAVA基础----JDK和JRE的区别
2014-10-17 09:47 2313JDK和JRE的区别(转) JRE -- java runti ... -
JAVA基础----ThreadLocal正确理解(转)
2014-09-02 11:15 1637http://www.iteye.com/topic/10 ... -
JAVA基础----Calendar类和GregorianCalendar
2014-03-11 19:01 9066Calendar日期处理类,用来处理日期的设值,获取相应的年, ... -
JAVA基础----DateFormat和SimpleDateFormat对象
2014-03-10 23:29 1593DateFormat和SimpleDateFormat类,是操 ... -
JAVA基础----static关键字全面理解
2014-03-09 10:38 1774static修饰的,在类加载的过程中就被初始化,并且在内存中只 ... -
JAVA基础----java中final和static关键字的理解
2014-03-01 16:35 15721、final最终的,由final修饰的变量,只能被初始化一次 ... -
JAVA基础----java死锁的一个例子
2014-02-19 23:39 1692java的一个死锁的例子 package com.out.te ...
相关推荐
Java-Oracle-UDP通信是一种基于无连接的网络通信方式,主要应用于实时数据传输或需要高效传输少量数据的场景。在Java编程中,我们通常使用`java.net`包中的`DatagramSocket`类来处理UDP通信,而在Oracle数据库环境中...
文件"java udp 简单实现 - - ITeye技术网站.mht"可能包含的是一个简单的Java UDP通信示例,涵盖了如何创建`DatagramSocket`,发送和接收数据报文的基本操作。理解这些基本操作对于初学者至关重要。 文件"(转)使用...
【网络通信基础】 网络通信是计算机科学中的重要组成部分,尤其在Java编程中占有核心地位。在本篇内容中,我们将探讨网络通信的基本概念以及Java如何与Internet交互。 首先,TCP/IP是Internet的主要通信协议,它...
UDP通信在Java编程中是一种常见的网络通信方式,它基于用户数据报协议(User Datagram Protocol),是一种无连接的、不可靠的传输协议。本项目提供的`Kehu.java`和`UDPServer.java`两个文件分别代表了UDP通信中的...
Java实现UDP通信,按照固定的帧格式发送数据和接收数据,对数据的格式解码处理。实现了显示同设备的不同工作模式的显示。发送不同的命令数据帧。 Java实现UDP通信,按照固定的帧格式发送数据和接收数据,对数据的...
Java网络编程中的UDP...通过这个项目,你可以深入理解Java网络编程中的UDP通信,了解如何使用Socket API创建UDP客户端和服务器,并实践如何结合GUI进行交互式通信。这不仅有助于理论学习,也提供了实际操作的经验。
Java UDP编程是网络通信中的一个重要领域,它基于用户数据报协议(User Datagram Protocol),与TCP(传输控制协议)相比,UDP提供了一种无连接、不可靠的数据传输方式。本资源包含了一个详细的Java UDP程序设计实例...
在Java中,我们通过`java.net`包中的`DatagramSocket`类来实现UDP通信。 **UDP客户端(UDPClient.java)** UDP客户端通常负责发送数据到服务器。首先,创建一个`DatagramSocket`实例,这允许客户端发送和接收数据...
UDP通信则使用`java.net.DatagramSocket`和`java.net.DatagramPacket`类。`DatagramSocket`用于发送和接收数据报,`DatagramPacket`封装了数据和目标/源地址信息。UDP不保证数据包的顺序和到达,因此适合对实时性...
以上就是关于“Java实现UDP通信协议”的关键知识点。理解并掌握这些内容,可以帮助开发者实现高效的UDP通信应用,并能处理相关的数据转换、日志记录和异常情况。通过实际项目练习,可以加深对这些概念的理解,并提升...
基于TCP的Socket通信是指两个Java应用程序可通过一个双向的网络通信连接实现数据交换,这个双向链路的一段称为一个Socket(套接字)。Socket通常用来实现Client/Server连接。Java语言的基于套接字编程分为服务器编程...
综上所述,"UDP聊天&文件发送.rar"项目涵盖了Java UDP套接字编程的多个方面,包括基础通信、多用户聊天、文件传输和GUI集成,这些都是Java网络编程中的重要概念和技术。通过此项目,开发者可以深入理解如何在实际...
Java UDP套接字网络编程是Java编程领域中的一个重要部分,主要涉及如何利用Java的Socket类库来实现基于用户数据报协议(User Datagram Protocol)的通信。UDP是一种无连接的、不可靠的传输协议,适用于对实时性要求...
Java 作为一种广泛应用的编程语言,提供了丰富的网络编程接口,使得开发者能够轻松地实现基于 TCP 和 UDP 的通信。本次实验旨在通过实践操作,帮助学生深入理解 TCP 和 UDP 的工作原理,并掌握使用 Java 进行网络...
Java UDP(用户数据报协议)是网络编程中的一个重要部分,特别是在构建实时通信或者对低延迟有较高需求的应用中。在Java中,UDP通信主要通过`...理解这些基础概念后,你可以根据项目需求进一步扩展和优化UDP通信代码。
总之,通过分析和实践这个"TCPSocket 和UDP通信java聊天室源文件",开发者可以深入理解TCP和UDP的区别,掌握Java Socket编程的基础,并了解如何在实际应用中构建聊天室系统。这对于提升网络编程能力、理解和解决实际...
在Java中,我们使用`java.net.DatagramSocket`和`java.net.DatagramPacket`来处理UDP通信。`DatagramSocket`用于发送和接收数据报,`DatagramPacket`封装了要发送的数据和目标地址。 UDP通信的基本流程: 1. 创建`...
在IT行业中,网络通信是至关重要的一个领域,Java作为一门广泛应用的编程语言,提供了丰富的API来支持TCP(传输控制协议)和UDP(用户数据报协议)这两种不同的网络通信方式。本篇文章将深入探讨如何使用Java实现TCP...
【Java基础-day14每日作业卷1】涵盖了Java网络编程中的基本概念,主要涉及IP地址、端口号、InetAddress类、UDP和TCP协议以及相关的数据包处理类。以下是这些知识点的详细说明: 1. **IP地址**:Internet Protocol ...
Java的UDP通信程序是基于用户数据报协议(User Datagram Protocol)进行网络通信的一种方式。UDP是一种无连接的、不可靠的传输层协议,它比TCP更轻量级,适合于实时性要求高或者数据丢失可以接受的应用场景。在这个...