Node提供丰富的网络编程模块
| Node模块 | 协议 |
| net | TCP |
| dgram | UDP |
| http | HTTP |
| https | HTTPS |
TCP服务事件分为下面两类
(1)、服务器事件
对于通过net.createServer()创建的服务器而言,它是一个EventEmitter实例,自定义事件有以下几种:
listening :在调用listen()绑定端口或Domain Socket后触发,简写为server.listen(port, listener),通过第二个参数传入。
connection :每个客户端套接字连接到 服务器 时触发,简洁写法为通过net.createServer(),最后一个参数传递。
close :当服务器关闭时触发,在调用server.close()后,服务器将停止接受新的套接字连接,但保持当前存在的连接,等待所有连接断开后,会触发该事件。
error :当服务器发生异常时,将会触发该事件。
(2)、连接事件
服务器可以同时与多个客户端保持连接,对于每个连接而言是典型的可写可读Stream对象。Stream对象可以用于服务端和客户端之间的通信,既可以通过data事件从一端读取另一端发来的数据,也可以通过write()方法从一端向另一端发送数据。
data :当一端调用write()发送数据时,另一端会触发data事件,事件传递的数据就是write()发送的数据
end :当连接中的任意一端发送FIN数据时,将会触发该事件。
connect :该事件用于 客户端 ,当套接字与服务器连接成功时会触发。
drain :当任意一端调用write()发送数据时,当前这端触发该事件。
error :当异常发送
close :当套接字完全关闭时触发
timeout :当一定时间后连接不再活跃时,触发该事件通知用户该连接被闲置了。
TCP针对网络中的小数据包有一定优化策略:Nagle算法,当数据达到一定量后才触发。









