首页 > 软件开发 > JavaScript >

Node.js dgram模块实现UDP通信

来源:互联网 2023-03-16 23:57:34 369

UDP,即用户数据报协议,一种面向无连接的传输层协议,提供不可靠的消息传送服务。UDP协议使用端口号为不同的应用保留其各自的数据传输通道,这一点非常重要。与TCP相比,占用资源更少,传输速度更快。tOl办公区 - 实用经验教程分享!

工具/原料

  • JavaScript

方法/步骤

  • 1

    了解UDP单播、广播和组播tOl办公区 - 实用经验教程分享!

    单播:向一个单播地址发送UDP数据报时,数据报只能被指定的IP主机接收,同一子网下的其它主机都不会接收该数据报。单播过程(假设子网地址:192.168.10,该子网下有两台主机:192.168.10.2,192.168.10.3,向192.168.10.2发送数据报)tOl办公区 - 实用经验教程分享!

    1.向主机192.168.10.2的8060端口发送数据报,该IP数据报目标IP在以太网中被ARP解析成MAC地址,然后将此MAC地址设置为目标地址发出去。tOl办公区 - 实用经验教程分享!

    2.该子网下的主机以太网接口看到该数据帧时,对比自己的MAC地址,如果不一样,则忽略该数据帧。tOl办公区 - 实用经验教程分享!

    3.直到192.168.10.2主机看到该数据帧时,发现MAC一致,则读入该数据帧,然后在IP层对比目标IP和本机IP,在UDP层对比端口号是否一致,最后接收该数据帧。tOl办公区 - 实用经验教程分享!

    广播:向一个广播地址发送UDP数据报,该广播网络下的所有主机都会受到影响,主机根据端口号来判断是否丢弃该数据。广播过程(假设子网地址:192.168.10,则该网络的广播地址为:192.168.10.255,该子网下有两台主机:192.168.10.2,192.168.10.3,向192.168.10.255发送数据报):tOl办公区 - 实用经验教程分享!

    1.向192.168.10.255主机端口为8060发送数据报,,该IP数据报目标IP在以太网中被ARP解析成MAC地址,然后将此MAC地址设置为目标地址发出去。tOl办公区 - 实用经验教程分享!

    2.192.168.10.2和192.168.10.3的主机接口都会和此广播地址匹配成功,直到该数据报进入传输层时根据端口是否匹配判断是否丢弃该数据,端口为8060的会保留该数据,否则将数据丢弃。tOl办公区 - 实用经验教程分享!

    组播:向一个组播地址发送UDP数据报,该组网络下的所有主机都会受到影响,主机根据端口号来判断是否丢弃该数据。组播过程原理与广播类似。tOl办公区 - 实用经验教程分享!

    3、dgram模块API介绍tOl办公区 - 实用经验教程分享!

    该模块用来创建UDP数据报socket,继承了EventEmitter,该模块的API如下所示:tOl办公区 - 实用经验教程分享!

    Node.js dgram模块实现UDP通信tOl办公区 - 实用经验教程分享!

  • 2

    4、UDP单播实现tOl办公区 - 实用经验教程分享!

    单播的原理上面已经说了,这里便不再叙述。tOl办公区 - 实用经验教程分享!

    服务端:tOl办公区 - 实用经验教程分享!

    Node.js dgram模块实现UDP通信tOl办公区 - 实用经验教程分享!

  • 3

    客户端:tOl办公区 - 实用经验教程分享!

    Node.js dgram模块实现UDP通信tOl办公区 - 实用经验教程分享!

  • 4

    5、UDP广播实现tOl办公区 - 实用经验教程分享!

    要实现UDP广播,就必须知道广播地址,广播地址如何计算呢?可以利用ipconfig(windows)或ifconfig(*unix)得到ip地址和mask掩码地址,然后利用ip地址与mask子网掩码做与操作得到网络地址,网络地址中主机位都为1就是广播地址,举个例子:tOl办公区 - 实用经验教程分享!

    IP:149.88.160.58mask:11111111.11111111.11000000.00000000IP&MASK得到网络地址:149.88.128.0/18网络号就是主机位全为0,即149.88.10000000.00000000 即149.88.128.0广播地址就是主机位全为1,即149.88.10111111.11111111即149.88.191.255tOl办公区 - 实用经验教程分享!

    接着实现UDP广播,我机子的IP为1.1.1.69,掩码为255.255.255.0,因此广播地址为1.1.1.255,服务端向广播地址的8061端口发送数据报,客户端绑定本机的8061端口,如下所示:tOl办公区 - 实用经验教程分享!

    服务端:tOl办公区 - 实用经验教程分享!

    Node.js dgram模块实现UDP通信tOl办公区 - 实用经验教程分享!

  • 5

    客户端:tOl办公区 - 实用经验教程分享!

    Node.js dgram模块实现UDP通信tOl办公区 - 实用经验教程分享!

  • 5该信息非法爬取自百度经验
  • 6

    6、UDP组播实现tOl办公区 - 实用经验教程分享!

    组播地址是实现UDP组播的关键,因此了解组播地址是重点。什么是组播地址?IANA将D类地址(224.0.0.0-239.255.255.255)分配给IP组播,用来标识一个IP组播组,由IGMP(组管理协议)协议维护组成员关系,其中:tOl办公区 - 实用经验教程分享!

    224.0.0.0~224.0.0.255为永久组地址,地址224.0.0.0保留不做分配,其它地址供路由协议使用;tOl办公区 - 实用经验教程分享!

    224.0.1.0~224.0.1.255是公用组播地址,可以用于Internet;tOl办公区 - 实用经验教程分享!

    224.0.2.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效;tOl办公区 - 实用经验教程分享!

    239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效。tOl办公区 - 实用经验教程分享!

    向组播地址发送数据报,只有该组成员才会接收此数据报。tOl办公区 - 实用经验教程分享!

    dgram模块的addMembership()方法将socket加入组播组中,dropMembership()方法退出组播组。下面以组播地址224.100.100.100来实现UDP组播,如下所示:tOl办公区 - 实用经验教程分享!

    服务端:tOl办公区 - 实用经验教程分享!

    Node.js dgram模块实现UDP通信tOl办公区 - 实用经验教程分享!

  • 7

    客户端:tOl办公区 - 实用经验教程分享!

    Node.js dgram模块实现UDP通信tOl办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!tOl办公区 - 实用经验教程分享!


    标签: JAVASCRIPT

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码