android - 如何使用套接字将浮点数组发送到服务器
问题描述
现在我想定期使用套接字向服务器发送数据。我把数据放在一个浮点数组中。但是,似乎 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();
}
}
解决方案
尝试使用以下方法,它将帮助您将 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;
}
推荐阅读
- python - 以python方式整理列表推导
- c# - Unity 文件名与类名错误不匹配 - 但它们确实匹配
- flutter - Flutter:Future函数不断调用
- r - Group_by / summarise 语句不适用于多个语句
- azure - Azure MSI 强制令牌刷新
- angular - 使用 Angular 和 nginx 我收到错误 Uncaught TypeError: Super expression must be null or a function
- azure-cosmosdb - Gremlin 查询以在同一响应中检索计数和数据
- c# - C# MySQL 无法连接到 ubuntu 服务器
- wordpress - 如何在 WooCommerce 中向用户提供运输方式选择?
- dictionary - Ansible - 如何将字典提供给字典类型的模块参数?