- 浏览: 1133965 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (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 6514. 终端执行命令ssh-keygen -t rs ... -
UML类图关系详解
2017-10-24 19:07 1632一、背景介绍 UML类图的关系,或者说面向对象 ... -
Java线程Dump分析工具--jstack
2017-04-18 11:27 2457Java线程Dump分析工具--jstack (转htt ... -
jdk-源码中的一些坑
2017-02-13 15:17 1170jdk-源码中的一些坑 1. Runnable接口的命名简直 ... -
内存溢出和内存泄露的区别
2016-11-15 20:12 4044内存泄漏(Memory Leak) 1. 概念: 指你用在C语 ... -
System.getProperty()获取tomcat自定义变量
2016-07-26 15:26 2131System.getProperty()获取tomcat自定义 ... -
Java类初始化顺序
2016-05-04 17:24 1836package com.tongbanjie.trade.te ... -
Rpc转
2016-03-27 22:48 978RPC框架几行代码就够了 博客分类: Java ... -
YY淘宝商品数据库设计(转)
2016-03-08 20:27 2704http://www.cnblogs.com/mmmj ... -
apache commons工具类简介
2015-07-27 14:02 5840一、Commons BeanUtils 说明:针对Bean的一 ... -
java获取客户端ip
2015-06-17 14:35 1621转:http://www.cnblogs.com/ITtan ... -
递归计算树结构当前节点包含多少级
2015-04-15 19:37 3849今天一个同事做,可变更目录结构时,遇到的计算当前节点包括节点下 ... -
JAVA基础----解决get方法传递URL参数中文乱码问题
2015-01-23 15:45 5701[转]解决get方法传递URL参数中文乱码问题 ... -
JAVA基础----JDK和JRE的区别
2014-10-17 09:47 2228JDK和JRE的区别(转) JRE -- java runti ... -
JAVA基础----ThreadLocal正确理解(转)
2014-09-02 11:15 1579http://www.iteye.com/topic/10 ... -
JAVA基础----Calendar类和GregorianCalendar
2014-03-11 19:01 9005Calendar日期处理类,用来处理日期的设值,获取相应的年, ... -
JAVA基础----DateFormat和SimpleDateFormat对象
2014-03-10 23:29 1548DateFormat和SimpleDateFormat类,是操 ... -
JAVA基础----static关键字全面理解
2014-03-09 10:38 1732static修饰的,在类加载的过程中就被初始化,并且在内存中只 ... -
JAVA基础----java中final和static关键字的理解
2014-03-01 16:35 15171、final最终的,由final修饰的变量,只能被初始化一次 ... -
JAVA基础----java死锁的一个例子
2014-02-19 23:39 1588java的一个死锁的例子 package com.out.te ...
相关推荐
Java实现UDP通信,按照固定的帧格式发送数据和接收数据,对数据的格式解码处理。实现了显示同设备的不同工作模式的显示。发送不同的命令数据帧。 Java实现UDP通信,按照固定的帧格式发送数据和接收数据,对数据的...
java网络开发,使用UDP协议进行通信,源代码可以直接运行,并且是可视化界面,方便大家学习
这是本人用Java语言,采用udp协议实现的一个网络通信客户端,一个程序你只需要打开两个端口,更改下端口号就可以通信
java实现TCP+UDP通信,服务器关闭后,客户端仍然可以继续通信。
通过java网络编程深入理解UDP协议通信,与TCP的区别等等 源码包每一行都有注释,在代码里面每一个类都有详细的注释来解释这个类的功能这个方法的功能,调用哪一个类的哪一个功能等等。 压缩包包含实验报告(实验原理...
java实现的 基本 网络通信程序 TCP 和UDP,配套书籍:《自顶向下网络结构设计》
java使用udp协议进行数据收发处理,java使用udp协议进行数据收发处理
13.1 TCP/IP协议简介 13.2 网络开发中的常用工具类 13.3 面向连接的TCP通信 13.4 无连接的UDP通信 13.5 UDP广播通信 13.6 局域网通信工具 第13章 Java网络编程 第13章-Java网络编程-Java面向对象程序设计教程-微课...
使用java语言实现UDP的通信 使用java.net包可以快速地开发各种网络应用程序
计算机网络socket编程,用Java程序实现UDP网络测试。
(C#)Udp网络通信小案例,课本小案例,通过UdpSend与UdpReceive两个窗体程序实现。
udp网络编程用来了解 udp协议通信。。。。。。。。。。。。
主要介绍了java 基础知识之网络通信总结的相关资料,包括TCP通信、UDP通信、多播以及NIO,需要的朋友可以参考下
用UDP实现两人互聊。 udp进行通信 socket()
利用Java语言基于UDP协议建立的多播广播组通信,可以实现一个服务器向多个客户端实时发送信息,基于GUI界面设计,可视化操作。
java中封装了大量的socket API,为编写网络通信程序提供了极大的方便. 在计算机网络的学习中,大家都已熟练掌握了TCP/UDP的基本原理,在此不在赘述.仅给出接收端和发送端的源代码,供大家讨论和批评.
该程序用JAVA编写,很实用。非常好的JAVA通信程序
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
前面个有点问题,我回家打开时才发现, 问题是设置IP不对,我用了我机器的IP,呵呵 不过你看完后改一下就可以了 还有一个问题就是,发送的字符在接收时,在窗体的后机会有乱码, 这个是开始我也没有想到,现在改...
通常在主机多网卡的情况下,需要指定组播数据收发的网卡,即向那个网络发送组播数据,从那个网络接收组播数据,否则容易产生接收不到组播数据的情况。代码中给出的组播收发类直接调用即可,收发类可分开使用,通过...