Net
nodejs给我们提供这个模块,是为了提供API操作TCP/IP 。我们用的时候需要require。
它包括了服务器和客户端(它们都是流),当然Net模块,分别提供方法来创建他们。
Class: net.Server
这个类是为了创建一个TCP或者说是本地一个服务器。
net.Server
是 EventEmitter
,所以它拥有下面一些event.
Event: 'close'
当服务器关闭的时候会emit。注意:要所有链接都断掉!!!
Event: 'connection'
- <net.Socket> 这个一个连接对象
当客服端与服务器形成一个新的连接的时候,就会emit.回调函数里的参数就是net.Socket的一个实例!
Event: 'error'
Emitted when an error occurs. The 'close'
event will be called directly following this event. See example in discussion of server.listen
.
意思就是整个链接传输过程中出现了错误,就会emit,当然 'close'
event也紧跟其后!
Event: 'listening'
调用server.listen()的时候就emit!
server.address()
Returns an object with port
, family
, and address
properties: { port: 12346, family: 'IPv4', address: '127.0.0.1' }
Example:
1 var server = net.createServer((socket) => { 2 socket.end('goodbye\n'); 3 }).on('error', (err) => { 4 // handle errors here 5 throw err; 6 }); 7 8 // grab a random port. 9 server.listen(() => { 10 console.log('opened server on', server.address()); 11 });
注意:一定要等"listening"event emit之后才能调用这个方法!具体看上面的例子和"listening"的介绍!
server.close([callback])
停止接收新的链接发送过来,但是!!!!维持了已经存在的链接!!!记住,存在的还是会继续链接着的!!!
这个方法是异步的。当所有链接都断开了,服务器也就关了,然后就发送'close'事件。可选参数callback也就是在'close'emit之后就执行了。
当然,如果服务器已经关闭了,你却调用这个方法,callback的参数err就会被实例化。
server.getConnections(callback)