net模块,用于创建基于流的tcp或ipc服务器与客户端。
TCP:基于流的传输协议。IPC:进程间的通信的一种协议或方法。
拥有的方法:createrServer([options][, connectionListener]):创建一个新的TCP或者IPC服务。
createConnection():创建一个socket类。可以是TCP也可以是ICP。
connect():上诉函数的别名
isIP(input):测试input是否是ip地址。无效的字符串则返回 0,IPv4 地址则返回 4,IPv6的地址则返回 6。
isIPv4(input):返回true/false。isIPv6(input)
net.Server类:这个类用于创建TCP或IPC server。继承至EventEmitter类
1,拥有的事件:a,'close'事件。服务关闭时触发,如果有链接存在,直到所有的链接结束才会触发这个事件。
b,'connection'事件,当一个新的链接建立时触发。
c,'error'事件,错误监听。
d,'listening',事件。监听开启服务事件server.listen()。
2,拥有的方法:address():返回一个有 port
, family
, 和 address
属性的对象,返回地址信息。
close(callback):关闭服务。
getConnections(callback):异步获取服务器的当前并发链接数,当 socket 被传递给子进程时工作。回调函数的两个参数是 err 和 count。
listen():为链接启动一个监听,一个链接可以是TCP和ICP,取决于他监听什么。调用多次,重新打开服务器。
server.listening:判断是否处于链接状态。
server.maxConnections:设置改属性使得当server链接过多时拒绝链接。
ref() :unref()。是否要维持Node进程。
net.Socket类:这个类是 TCP 或 UNIX Socket 的抽象,这个类也是个可读可写流,还继承了事件类。
1,拥有的事件:a,'close'事件,一旦 socket 完全关闭就发出该事件。参数 had_error
是 boolean 类型,表明 socket 被关闭是否取决于传输错误。
b,'lookup'事件,在查找到主机之后,创建链接之前触发。
c,'error'错误事件,当发生错误之后触发,随后触发close事件。
d,'connect',当一个scoket被链接时触发该事件。
e,'ready'事件:准备ok触发,表明准备好了。
f,'timeout'事件:当 socket 超时的时候触发。该事件只是用来通知 socket 已经闲置。用户必须手动关闭。
g,'data'事件,当有信息传输时触发该事件,注意当 Socket
发送 data
事件的时候,如果没有监听者数据将会丢失。
h,'drain'事件:当写入缓冲区变为空时触发。可以用来做上传节流。
i,'end'事件:监听主动结束事件,错误引发关闭不会触发该事件。
2,拥有的方法:address(),和server一样。
write(data[, encoding][, callback]):发送数据给父链接。如果全部数据都成功刷新到内核的缓冲则返回 true
。如果全部或部分数据在用户内中排队,则返回 false
。当缓冲再次空闲的时候将触发 'drain'
事件。
当数据最终都被写出之后,可选的 callback
参数将会被执行 - 可能不会立即执行。
localAddress:返回本地ip地址,正在使用的。localPort:返回本地端口号。
remoteAddress:远程 IP 地址。remoteFamily:远程IP 协议族。remotePort:数字表示的远程端口。
bufferSize:此属性显示当前即将被写入的缓冲的字符数。
bytesRead:接收的字节数量。bytesWritten:发送的字节数量。
connecting:下面方法没有被调用。
connect():建立一个链接,通常该方法是不需要的,一般只在实现一个自定义的 Socket 的时候使用该方法。
destroy():销毁该socket,仅在出现错误的时候才用到。
destroyed:一个布尔值,用来指示链接是否已经被销毁。一旦连接被销毁就不能再使用它传输任何数据。
end():半关闭 socket。 例如发送一个 FIN 包。 服务端仍可以发送数据。
pause():暂停读写数据。也就是说,'data'
将不会再被触发。可以用于上传节流。
resume():暂停之后的回复数据。
setEncoding([encoding])设置作为可读流(Readable Stream)的编码。
setKeepAlive([enable][, initialDelay]):启用/禁用长连接功能。
setNoDelay([noDelay]):禁止 Nagle 。默认情况下 TCP 连接使用 Nagle 算法,在发送之前缓冲数据。将 noDelay
设置为 true
将会在每次 socket.write()
被调用的时候立即发送数据。noDelay
默认是 true
。
setTimeout(timeout,callback):多少毫秒不活动之后会触发timeout事件,然后可以手动关闭改服务。
ref(),unref()。是否加入控制Node状态的列表。