代码全部来自:http://825635381.iteye.com/blog/2046882,在这里非常感谢了,我运行测试了下,非常正确,谢谢啊

服务端程序:

package udpServer;

import java.io.*;
import java.net.*; /**
* 服务端
* 1、创建服务+端口
* 2、准备接受容器 byte数组
* 3、把接收容器封装成包 DatagramPacket
* 4、接受数据
* 5、分析数据 将字节数组转换成--------》各种类型数据
* 6、释放资源
*/
public class server { 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; }
}

客户端程序:

package udpClient;

import java.io.*;
import java.net.*; /**
* 字符串数据类型的通信
* 1、创建客户端+端口
* 2、准备数据 字节数组
* 3、给数据打包 并指定发送的目的地和端口
* 4、发送
* 5、释放
*
* 思考 : 发送有类型的数据 怎么处理 如对象 数字 等等
* 1、创建客户端+端口
* 2、准备数据 把各种类型的数据转成--------》字节数组 ***************************************
* 3、给数据打包 并指定发送的目的地和端口
* 4、发送
* 5、释放
*/
public class client {
public static void main(String[] args) throws IOException {
//1.创建客户端+端口
DatagramSocket client = new DatagramSocket(8888);
//2.准备要发送的数据 字节数组
double d = 123.2345;
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; } }

服务器端控制台显示出客户端发出数字:

123.2345

java udp 发送小数数字(较难)的更多相关文章

  1. Java UDP发送与接收

    IP地址?端口号?主机名? 什么是Socket? 什么是UDP? 什么是TCP? UDP和TCP区别? 以上问题请自行百度,有标准解释,此处不再赘述,直接上干货! 实例: 发送端: public cl ...

  2. 项目总结22:Java UDP Socket数据的发送和接收

    项目总结22:Java UDP Socket数据的发送和接收 1-先上demo 客户端(发送数据) package com.hs.pretest.udp; import java.io.IOExcep ...

  3. Java使用UDP发送数据到InfluxDB

    最近在做压测引擎相关的开发,需要将聚合数据发送到InfluxDB保存以便实时分析和控制QPS. 下面介绍对InfluxDB的使用. 什么是InfluxDB InfluxDB是一款用Go语言编写的开源分 ...

  4. java udp与tcp

    一:基础  NET基本对象java.net.InetAddress类的使用 IP地址是IP使用的32位(IPv4)或者128位(IPv6)位无符号数字,它是传输层协议TCP,UDP的基础.InetAd ...

  5. Java UDP的简单实例以及知识点简述

    UDP的实现 Java中实现UDP协议的两个类,分别是DatagramPacket数据包类以及DatagramSocket套接字类. 其与TCP协议实现不同的是: UDP的套接字DatagramSoc ...

  6. Learn day8 re正则表达式\search函数\反射\tcp发送消息(循环)\udp发送消息

    1.匹配单个字符 # ### 正则表达式 - 单个字符匹配 import re ''' findall 把匹配的结果直接返回到列表中 lst = re.findall("正则表达式" ...

  7. 通过 UDP 发送数据的简单范例

    package j2se.core.net.udp; import java.io.IOException;import java.net.DatagramPacket;import java.net ...

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

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

  9. JAVA UDP网络编程学习笔记

    一.UDP网络编程概述 采用TCP协议通信时,客户端的Socket必须先与服务器建立连接,连接建立成功后,服务器端也会持有客户端连接的Socket,客户端的Socket与服务器端的Socket是对应的 ...

随机推荐

  1. FZU 2087 统计树边

    这题第一直觉就是和CF第三次教育场的E题是一样的, http://codeforces.com/contest/609/problem/E 然后直接拉过来代码改了改,提交返回MLE.FZU内存开的小, ...

  2. HDU 2809 God of War

    状压DP.我认为是数据水了,用打死了哪几只作为状态,AC代码只需要保存当前状态的最大血量,完全没有考虑攻击力大小. 个人认为正确DP应该这样的:dp[状态][等级],但这样写不能AC,时间复杂度会很大 ...

  3. Mapreduce 反向索引

    反向索引主要用于全文搜索,就是形成一个word url这样的结构 file1: MapReduce is simple file2: MapReduce is powerful is simple f ...

  4. 直流电机驱动PWM频率(转)

    源:直流电机驱动PWM频率 1.没有统一的标准,其实PWM的频率和你的电机感抗和你需要的速度响应时间有很大的关系.一般的电机用14K就足够了.当然自需要简单的调速可以随便选. 如果电机转速比较高,感抗 ...

  5. jstree使用小结(一)

    项目中用到tree结构,使用了jstree做个笔记如下: 1. 官网: http://www.jstree.com/    有时候打不开,那就只能等打得开的时候再看了...O(∩_∩)O [PS: 一 ...

  6. UVa 11308 - Bankrupt Baker

    题目大意:给出一些原料和价钱和若干份菜谱,每份菜谱都标明所需的原料和数量,找出所有不超过预算的菜谱. 没什么好说的,主要是对map的运用. #include <cstdio> #inclu ...

  7. Round Numbers(poj 3252)

    题意:算出区间内二进制中0的个数大于等于1的个数的数字有多少个 /* 本来以为用数位DP搞,但是组合数更简单. 我们设n的二进制长度为len. ①:先考虑长度小于len的数字. 这里以数字22为例,二 ...

  8. CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动

    CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动1.关于mysql?MySQL是一个关系型数据库管理 ...

  9. 兼容ie6及以上和firefox等标准浏览器的表格行滑过时背景色切换的效果

    一.js代码——"tablehover.js" /**      *②.表格单元行滑过时高亮样式动效组件封装      *oop形式封装交互动效类      *组件说明这个组件是为 ...

  10. Unity基础学习-Unity概述

    Unity 概述 Unity是一个强大的引擎,里面包括大量的工具用来满足各种各样的需求.Unity的编辑器是直观的可定制的,让您在您的工作流中有较大的自由度. 本小节是开始学习Unity的关键部分.里 ...