Node.js 是否有“新套接字”?创建 Unix 文件套接字?

发布于 2024-12-06 02:28:54 字数 473 浏览 1 评论 0原文

过去几周我一直在使用 Node.js,我需要实现 FAST-CGI 协议。 问题是,当我创建 UNIX 套接字(通过“new Socket”)时,我需要获取文件名或文件描述符。但socket.fd为null(默认参数)。

我的问题是:“new Socket”是否创建操作系统套接字对象文件,如果是,如何获取套接字文件描述符或文件名?

我不确定这是否是我应该创建套接字的方式,但情况如下:
节点:

var net = require(net)
var socket = new net.Socket()
console.log(socket);

{
 bufferSize: 0,
 fd:null,
 type: null,
 allowHalfOpen: false,
 _writeImpl: [Function],
 _readImpl: [Function],
 _shutdownImpl: [Function]
}

I've been working with node.js for the past couple of weeks and I need to implement the FAST-CGI protocol.
The problem is that when I create a UNIX socket (via "new Socket") I need to get the filename, or file descriptor. But socket.fd is null (default parameter).

My question is: Does "new Socket" creates a operating system socket object file, and if so, how can I get the Socket File Descriptor or File Name?

I'm not sure if this is how I should create a Socket, but here is the case:

node:

var net = require(net)
var socket = new net.Socket()
console.log(socket);

{
 bufferSize: 0,
 fd:null,
 type: null,
 allowHalfOpen: false,
 _writeImpl: [Function],
 _readImpl: [Function],
 _shutdownImpl: [Function]
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

茶花眉 2024-12-13 02:28:54

好吧,当您连接套接字时,socket.fd 不为空,至少在我的情况下不为空,所以请提供一个示例案例。

请注意,您还可以在创建套接字时指定现有文件描述符

编辑:

var net = require('net'),
    fs = require('fs'),
    sock;

// Create socket file
fs.open('/tmp/node.test.sock', 'w+', function(err, fdesc){
    if (err || !fdesc) {
        throw 'Error: ' + (err || 'No fdesc');
    }

    // Create socket
    sock = new net.Socket({ fd : fdesc });
    console.log(sock);
});

Well when you connect a socket, socket.fd is not null, at least not in my case, so provide an example case please.

Note that you can also specify existing file descriptor at socket creation.

Edit:

var net = require('net'),
    fs = require('fs'),
    sock;

// Create socket file
fs.open('/tmp/node.test.sock', 'w+', function(err, fdesc){
    if (err || !fdesc) {
        throw 'Error: ' + (err || 'No fdesc');
    }

    // Create socket
    sock = new net.Socket({ fd : fdesc });
    console.log(sock);
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文