我收到了一个经网络传输并以Buffer形式到达我的服务器的字符串。该字符串已按照我的自定义协议格式化(理论上还没有实现)。我想使用前n个字节来表示标识该协议的字符串。
我已经完成以下步骤:
我已经完成以下步骤:
data.toString('utf8');
我可以在整个缓冲区上操作,但这只会将整个数据包作为字符串返回,这并不是我想要实现的结果。
当接收到消息时,如何将部分字节转换为字符串?
提前感谢您的回复。
data.toString('utf8');
我可以在整个缓冲区上操作,但这只会将整个数据包作为字符串返回,这并不是我想要实现的结果。
当接收到消息时,如何将部分字节转换为字符串?
提前感谢您的回复。
Buffer.toString()
方法接受start
和end
参数,您可以使用它们来仅获取所需的子字符串。这可能会比您在答案中建议的分配新的中间Buffer
更快,具体取决于您的实现。Buffer.toString()
方法以了解更多信息。buffer.subarray(0, bytes).toString();
sourceBuffer.copy(targetBuffer, targetStartIndex, sourceStartIndex, sourceEndIndex)
b [0]
是第一个字节,表示为从0到255的无符号整数。 - Kip