gpt4 book ai didi

node.js/在 data.socket 上获取缓冲区

转载 作者:搜寻专家 更新时间:2023-10-31 22:40:02 25 4
gpt4 key购买 nike

我使用 node.js,并有下一个代码:

var server = net.createServer(function(socket) {
socket.on('data', function(d) {
console.log(d);}}

我看到它打印下一个:

<Buffer 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0..>

即使我在我的本地主机上打开一个连接。可能是什么原因?我如何更改它以获取 http 请求?

最佳答案

根据docs ,您必须使用 setEncoding() 方法指定编码才能接收字符串。
如果不这样做,您将收到一个包含原始数据的缓冲区,因为 Node 不知道您想要什么编码 - 并且 Node 处理非常低级别的网络。

例如:

var server = net.createServer(function(socket) {
socket.setEncoding("utf8");
socket.on('data', function(d) {
console.log(d); // will be string
}
}

如果你不想,你总是可以调用toString():

var server = net.createServer(function(socket) {
socket.on('data', function(d) {
console.log(d.toString());
}
}

关于node.js/在 data.socket 上获取缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17107343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com