方法和属性
- net.createServer([options][, connectionListener])
- net.createConnection(options[, connectListener])
- net.createConnection(path[, connectListener])
- net.createConnection(port[, host][, connectListener])
- net.connect(options[, connectListener])
- net.connect(path[, connectListener])
- net.connect(port[, host][, connectListener])
- net.isIP(input)
- net.isIPv4(input)
- net.isIPv6(input)
net.createServer([options][, connectionListener])
创建一个新的服务器。connectionListener
参数自动设置为 'connection' 事件 的一个监听器。
options
是一个对象包含以下默认值:
{
allowHalfOpen: false,
pauseOnConnect: false
}
如果 allowHalfOpen
是 true
,那么当其他 socket 端发送了一个 FIN 包时,socket 不会自动发送 FIN 包。该 socket 变成不可读但可写的状态。你应该明确地调用 end() 方法。详见 'end' 事件了解更多详情。
如果 pauseOnConnect
是 true
,那么与每个传入连接关联的 socket 都会被暂停,并且从它的句柄中无法读取数据。这使得连接在不读取原始进程的数据的情况下,在进程之间传递。调用 resume() 从暂停 socket 中开始读取数据。
这是一个监听端口 8124 的连接的回声服务器例子:
const net = require('net');
const server = net.createServer((c) => {
// 'connection' listener
console.log('client connected');
c.on('end', () => {
console.log('client disconnected');
});
c.write('hello\r\n');
c.pipe(c);
});
server.on('error', (err) => {
throw err;
});
server.listen(8124, () => {
console.log('server bound');
});
使用 telnet
进行测试:
telnet localhost 8124
要监听 socket /tmp/echo.sock
,只要将倒数的第三行改为
server.listen('/tmp/echo.sock', () => {
console.log('server bound');
});
使用 nc
来连接一个 UNIX
域 socket 服务器:
nc -U /tmp/echo.sock
net.createConnection(options[, connectListener])
一个工厂函数,返回一个新的 net.Socket 实例,并使用提供的 options
自动连接。
options
同时被传到 net.Socket 构造函数和 socket.connect 方法。
connectListener
参数会被添加为 'connect' 事件 的监听器一次。
这是先前描述的回声服务器的客户端的一个例子:
const net = require('net');
const client = net.createConnection({
port: 8124
}, () => {
//'connect' listener
console.log('connected to server!');
client.write('world!\r\n');
});
client.on('data', (data) => {
console.log(data.toString());
client.end();
});
client.on('end', () => {
console.log('disconnected from server');
});
要监听 socket /tmp/echo.sock
,只要将第二行改为
const client = net.createConnection({path: '/tmp/echo.sock'});
net.createConnection(path[, connectListener])
一个工厂函数,返回一个新的 unix net.Socket 实例,并使用提供的 path
自动连接。
connectListener
参数会被添加为 'connect' 事件 的监听器一次。
net.createConnection(port[, host][, connectListener])
一个工厂函数,返回一个新的 net.Socket 实例,并使用提供的 path
和 host
自动连接。
如果省略了 host
,'localhost'
将会承担其职责。
connectListener
参数会被添加为 'connect' 事件 的监听器一次。
net.connect(options[, connectListener])
一个工厂函数,返回一个新的 net.Socket 实例,并使用提供的 options
自动连接。
options
同时被传到 net.Socket 构造函数和 socket.connect 方法。
connectListener
参数会被添加为 'connect' 事件 的监听器一次。
这是先前描述的回声服务器的客户端的一个例子:
const net = require('net');
const client = net.connect({
port: 8124
}, () => {
// 'connect' listener
console.log('connected to server!');
client.write('world!\r\n');
});
client.on('data', (data) => {
console.log(data.toString());
client.end();
});
client.on('end', () => {
console.log('disconnected from server');
});
要监听 socket /tmp/echo.sock
,只要将第二行改为
const client = net.connect({path: '/tmp/echo.sock'});
net.connect(path[, connectListener])
一个工厂函数,返回一个新的 unix net.Socket 实例,并使用提供的 path
自动连接。
connectListener
参数会被添加为 'connect' 事件 的监听器一次。
net.connect(port[, host][, connectListener])
一个工厂函数,返回一个新的 net.Socket 实例,并使用提供的 path
和 host
自动连接。
如果省略了 host
,'localhost'
将会承担其职责。
connectListener
参数会被添加为 'connect' 事件 的监听器一次。
net.isIP(input)
检测是否输入是一个 IP 地址。对于无效的字符串,返回 0,对于 IPv4 的地址返回 4,对于 IPv6 地址返回 6。
net.isIPv4(input)
如果输入的是版本 4 的 IP 地址,则返回 true,否则返回 false。
net.isIPv6(input)
如果输入的是版本 6 的 IP 地址,则返回 true,否则返回 false。