我有一个字符串,该字符串是通过网络发送的,并作为缓冲区到达我的服务器。它已经格式化为我自己的自定义协议(理论上还没有实现)。我想将前n个字节用于标识协议的字符串。
我已经完成:
data.toString('utf8');
在整个缓冲区上,但这只是给我整个包作为字符串,这不是我想要实现的。
收到消息后,如何将字节的子集转换为字符串?
预先感谢
答案 0 :(得分:2)
Buffer.toString()
方法接受start
和end
参数,您可以使用它们来切出所需的子字符串子集。根据您的实现,这可能比分配答案中建议的分配新的中介Buffer
更快。
查看Node的Buffer.toString()
方法以获取更多信息。
答案 1 :(得分:1)
了解如何。
您必须通过在原始缓冲区上调用方法copy来将所需的字节数复制到另一个缓冲区中,即:
sourceBuffer.copy(targetBuffer, targetStartIndex, sourceStartIndex, sourceEndIndex)
这将为您的targetBuffer提供所需的数据,然后可以调用toString()或任何其他方法将缓冲区数组转换为所需的数据类型。