dgram模块提供了UDP数据包socket的实现。可以接收,反馈信息,建立一个socket用来接收反馈信息。
UDP:是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,它与TCP协议一样用于处理数据包,是一种无连接的协议。
主要作用:将网络数据压缩成数据包的形式,就是二进制流,适合一次传输少量数据
缺点:不能对数据包进行重新排列,无法知道是否安全到达。
运用:网络视频会话等。
dgram拥有的方法:createSocket(options[,callback]):回调函数若有的话,为'message'添加一个监听器。返回一个socket类。
socket类:dgram模块的核心api。也是EvenrEmitter类的子类,拥有events的所有属性和方法
A:拥有的事件:
close:监听close()关闭函数事件
error:监听错误发生,当有错误发生可关闭服务
listening:当一个socket开始监听数据包时,立即触发,可由bind()函数触发。
mesage:事件监听器,当有消息传递时,触发。
B: 拥有的方法:
addMembership(multicastAddress[, multicastInterface]):通知内核将多路传送集合通过IP_ADD_MEMBERSHIP
这个 socket 选项结合起来。
dropMembership(multicastAddress[, multicastInterface]):引导内核通过IP_DROP_MEMBERSHIP
这个 socket 选项删除multicastAddress
指定的多路传送集合。当 socket 被关闭或进程被终止时,该方法会被内核自动调用,所以大多数的应用都不用自行调用该方法。
setMulticastInterface(multicastInterface):
address():返回一个包含地址的信息:包含address,port,family.
bind([port],[address],[callback]):port端口号,address域名地址,回调函数执行晚于listening事件。
bind(options[,callback]):exclusive <boolean>参数和集群信息共享相关。
close([callback]):关闭监听,可注册一个回调函数,执行晚于close事件。
getRecvBufferSize():返回socet接收到的字节大小:65536是UDP协议头的固定内容大小。
getSendBufferSize():返回socket发送的字节大小。
ref():有一个维持node运行的引用列表,调用unref()会把socket从引用列表移除,当引用列表仅有一个时,移除就好导致进程退出。ref()会添加进引用列表。该方法返回一个scoket的引用,所有可以链式调用。
send(msg,[offset,length],port[,address][,callback]):发送消息,消息和端口号是必填字段
setBroadcast(flag):设置或清除 SO_BROADCAST
socket 选项。当设置为 true
, UDP包可能会被发送到一个本地接口的广播地址