socket 中 send 浮点数的问题

问题描述

socket 中 send 浮点数的问题

作为服务端,我需要将一个 浮点数 ,4字节,send到 客户端。
需要怎样处理 这个浮点数,比如 浮点数 -1.23345。

解决方案

//直接用ObjectOutputStream写
ObjectOutputStream o=new ObjectOutputStream(socket.getOutputStream());
o.writeDouble(0.2d);

//自己转byte[]
public static byte[] long2Bytes(long num) {
byte[] byteNum = new byte[8];
for (int ix = 0; ix < 8; ++ix) {
int offset = 64 - (ix + 1) * 8;
byteNum[ix] = (byte) ((num >> offset) & 0xff);
}
return byteNum;
}

socket.getOutputStream().write(long2Bytes(Double.doubleToLongBits(d)));


其实objectOutputStream底层也是这么干的

解决方案二:

用指针获取,直接send四字节数据

解决方案三:

关于浮点数0.57 0.58 造出的坑爹问题
浮点数问题
关于浮点数的一些问题

解决方案四:

c# java里面不用有相应的转为二进制的方法。

解决方案五:

这个不是可以直接发送的嘛??

时间: 2024-10-29 08:18:31

socket 中 send 浮点数的问题的相关文章

请问socket中各种函数(rec,send等)功能是怎么实现的,有没有socket的源码分析一下。

问题描述 请问socket中各种函数(rec,send等)功能是怎么实现的,有没有socket的源码分析一下. 我想说的是求socket的实现,而不是利用socket去编程,求大神 解决方案 可以先了解一下winpcap编程 解决方案二: Linux TCP/IP协议栈之Socket的实现分析(一 套接字的创建) 解决方案三: 基本上都在driver里面了 你要愿意去读linux 源代码好了 解决方案四: socket的实现就很底层了,那个应该属于嵌入式驱动开发了,需要控制硬件也要开放上层软件接

C# 网络编程之使用Socket类Send、Receive方法的同步通讯

      经过几天学习,终于解决了再C#网络编程中使用Socket类Send和Receive方法开发的客户端和服务端的同步通讯程序:实现了又客户端想服务器发送消息的界面程序.主要使用的方法是:      1.Socket套接字编程的知识,通过IPAddress定义一个IP地址,IPEndPoint定义一个主机,Socket实例套接字对象sock和线程Thread的的成员变量;      2.再调用方法bind绑定端口.listen监听端口.accept接受连接请求.connect请求连接来连接

java-关于Socket中的输出流缓存问题

问题描述 关于Socket中的输出流缓存问题 为什么以下程序中Send Request cost的输出在第二次之后都是0或者1ms? public class MyThread implements Runnable { @Override public void run() { while (true) { try { Thread.sleep(1000); getTime(); } catch (InterruptedException e) { e.printStackTrace(); }

Socket中服务器向客服端发送信息的问题

问题描述 Socket中服务器向客服端发送信息的问题 20C 先上代码:public class ServerThread implements Runnable{ //定义当前线程所处理的Socket Socket s=null; BufferedReader bReader=null; OutputStream os=null; public ServerThread(Socket s) throws IOException{ this.s=s; bReader=new BufferedRe

详解z/OS中的浮点数:HFP, BFP与DFP

在z/OS操作系统中,浮点数类型分为二进制浮点数架构BFP,十六进制浮点数架构HFP与十进制浮点数架构DFP三类.IBM自1964年S/360系统起确立HFP为其基础浮点数架构:1998年于S/390系统正式引入BFP,即IEEE754-1985标准:至2007年z9系统中开始支持DFP,即IEEE754-2008标准.本文介绍此三类浮点数的编码原理与性质,帮助读者在z/OS中编写应用程序中选择适合的浮点数类型,以及在调试中阅读二进制编码的浮点数. 浮点数架构的基本知识 在计算机系统中,浮点数是

Java socket中关闭IO流后,发生什么事?(以关闭输出流为例)

声明:该博文以socket中,关闭输出流为例进行说明.   为了方便讲解,我们把DataOutputstream dout = new DataOutputStream(new BufferedOutputStream(mySocket.getOutputStream()));中的dout做为Socket输出流的代言.同样的,din是输入流的代言. 可以造成dout被关闭的操作有: 1.调用dout.close();或din.close();因为使用这种流关闭,会造成socket被关闭,所以输入

摄像头-android 从socket中读取数据转换bitmap为空

问题描述 android 从socket中读取数据转换bitmap为空 用蓝牙传的,这是客户端用摄像头预览的数据 这是传数据的方法 这是服务端接收数据 日志上显示 D/skia: --- SkImageDecoder::Factory returned null 打印接收到的数据byte[] b时显示一排竖方框,这应该是乱码或者是空吧,是编码格式的问题? 解决方案 http://www.cnblogs.com/devinzhang/archive/2012/06/05/2536848.html

socket中while(true)的使用

问题描述 socket中while(true)的使用 本人初学java编程,在书中看到这个语句,这个是服务端接受语句的代码 package dddd; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class MyTcp { privat

java-Java Socket网络通信问题,向百度发送数据(学习socket中~)

问题描述 Java Socket网络通信问题,向百度发送数据(学习socket中~) 我在本地客户端向百度某个端口(如:80)发送一个数据(例如字符a),百度会返回什么信息吗? 测了一下,并没有什么回应.那么我在本地客户端怎么做,百度才会返回一些信息 (例如:时间.网页新闻之类的消息) 解决方案 http://blog.csdn.net/b_h_l/article/details/8712282 解决方案二: 基于Java的socket网络通信Java网络通信Socket[Cocos2d-x]使