博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java udp 发送小数数字(较难)
阅读量:4922 次
发布时间:2019-06-11

本文共 2659 字,大约阅读时间需要 8 分钟。

代码全部来自: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

转载于:https://www.cnblogs.com/shuqingstudy/p/4726830.html

你可能感兴趣的文章
python-redis之数据类型二
查看>>
Java类加载机制
查看>>
循环单链表实现
查看>>
Android设计模式实战---责任链模式
查看>>
剑指Offer_31_整数中1出现的次数(从1到n整数中1出现的次数)
查看>>
10月29日 迅雷会员vip账号分享 91freevip 晚间21:00更新
查看>>
【一题多解】Python 字符串逆序
查看>>
open ball、closed ball 与 open set、closed set(interior point,limit point)、dense set
查看>>
字典(dictionary)与映射(map)
查看>>
Python 编程规范 —— TODO 注释(结合 PyCharm)
查看>>
十万个为什么 —— 名词解释(体育)
查看>>
table的设置(w3c)
查看>>
冲刺一
查看>>
【练习】在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b...
查看>>
sql 语句
查看>>
VUE一 基础语法
查看>>
[MySQl]MySQL忘记密码
查看>>
Android的minSdkVersion,targetSdkVersion,maxSdkVersion
查看>>
Xceed WinForm数据表格控件Xceed Grid For .NET控件详细介绍及下载地址
查看>>
linux 下连接mysql服务器
查看>>