我正在构建一个聊天客户端和服务器作为课程项目的一部分,并且遇到了一个我似乎无法解决的问题。byte[]
根据特定情况,文本必须以固定大小(32 或 64 字节)的形式传递。
当我将字符串更改为byte[]
使用该.getBytes()
方法时,它会用空方块填充字符串的长度。这在运输和收货期间很好,但在某些时候我需要将字符串更改为原始格式(目前已完成new String(byte[])
并删除空方块。
我似乎找不到这样做的好方法。有什么建议么?
相关代码位客户端:
byte[] bigDataByte = new byte[64];
sendData[2] = (bigDataByte = message.getBytes())
for (int i = 0; i < sendData.length; i++){
if (sendData[i] != null){
DatagramPacket sendPacket = new DatagramPacket(sendData[i], sendData[i].length, IPAddress, clientPort);
clientSocket.send(sendPacket);
}
}
相关码位服务器端:
String name = new String(getBytes(32));
private static byte[] getBytes(int size) throws IOException {
byte[] dataByte = new byte[size];
DatagramPacket dataPacket = new DatagramPacket(dataByte, dataByte.length);
servSocket.receive(dataPacket);
return dataPacket.getData();
}