首页 > 解决方案 > 如何使用套接字将浮点数组发送到服务器

问题描述

现在我想定期使用套接字向服务器发送数据。我把数据放在一个浮点数组中。但是,似乎 write() 只能在数组是字节数组时使用。那么,我该如何解决这个问题呢?如何将浮点数组更改为字节数组?

public void transferdata(float[] a){
    Socket socket;
    try{
        socket=new Socket("192.168.1.32",1989);
        //InputStream inputStream = new FileInputStream(resultFileName);
        OutputStream outputstream=socket.getOutputStream();
       
        outputstream.write(a,0,0);
        outputstream.flush();

    }
    catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

标签: androidsockets

解决方案


尝试使用以下方法,它将帮助您将 float[] 转换为 bytes[]。

public byte[] floatToByte(float[] input) {
    byte[] bytes = new byte[input.length*4];
    for (int x = 0; x < input.length; x++) {
        ByteBuffer.wrap(bytes, x*4, 4).putFloat(input[x]);
    }
    return bytes;
}

推荐阅读