过去几周我一直在使用node.js,我需要实现FAST-CGI协议。 问题是当我创建一个UNIX套接字(通过“new Socket”)时,我需要获取文件名或文件描述符。但是socket.fd为null(默认参数)。
我的问题是:“new Socket”是否会创建一个操作系统套接字目标文件,如果是,我该如何获取套接字文件描述符或文件名?
我不确定这是否应该如何创建一个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]
}
答案 0 :(得分:7)
当你连接套接字时,socket.fd不是null,至少不是我的情况,所以请提供一个示例。
请注意,您还可以指定现有文件描述符at socket creation。
修改强>
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);
});