阅读(674) (2)

net.Server TCP服务器模块

2017-07-11 09:29:37 更新

这个类(net.Server)是用来建立TCP 或者UNIX 服务器的。 下面有一个在8124端口等待连结的echo server 的例子:

var net = require('net');
var server = net.createServer(function (stream) {
stream.setEncoding('utf8');
stream.on('connect', function () {
stream.write('hello\r\n');
});
stream.on('data', function (data) {
stream.write(data);
});
stream.on('end', function () {
stream.write('goodbye\r\n');
stream.end();
});
});
server.listen(8124, 'localhost');

如果要使用UNIX SOCKET '/tmp/echo.sock',最后一行需要改成。

server.listen('/tmp/echo.sock');

如下是该对象可以触发的事件:

Event: 'connection'

function (stream) {}

当一个新连接建立后触发(发出)这个事件,stream 是net.Stream 类的一个实例。

Event: 'close'

function () {}

当一个SERVER 关闭的时候触发(发出)这个事件。

net.createServer(connectionListener)

建立一个新的TCP SERVER。connectionListener 参数会自动设置为'connection'事件的监听函数。

server.listen(port, [host], [callback])

在指定端口和主机上接受一个连接请求。如果HOST 这个参数忘记写了,该SERVER 将在机器的所有IPV4地 址(INADDR_ANY)上接受连接请求。

这是一个异步函数,最后一个参数‘callback’将在服务器被绑定(应当是指当listen 正常执行完并且进入正常监听 流程后)后被调用。

server.listen(path, [callback])

建立一个UNIX SOCKET SERVER 并监听在指定路径上的连接。 这个函数是一个异步方法,最后一个参数‘callback’将在服务器被绑定(应当是指当listen 正常执行完并且进入正 常监听流程后)后被调用。

server.listenFD(fd)

建立一个SERVER 并监听在给定的文件描述符上。 这个文件描述符必须是已经在其上调用过bind(2)、listen(2)系统调用的。

server.close()

停止服务器,此函数是异步的。服务器在触发'close'事件后才会最终关闭。