028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

nodejs中怎么构建一个UDP服务

本篇文章为大家展示了nodejs中怎么构建一个UDP服务,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

顺义网站建设公司成都创新互联公司,顺义网站设计制作,有大型网站制作公司丰富经验。已为顺义上千家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的顺义做网站的公司定做!


1.UDP简介
1.1 TCP和UDP

什么时候用TCP?什么时候用UDP ?

1.2 UDP的三种传播方式
  1. UDP单播

    • 单播的地址为单一目标的一种传播方式

    • 地址范围:0.0.0.0 ~ 223.255.255.255

  2. UDP广播

    • 受限广播:它不会被路由转发,IP地址网络字段和主机字段全为1就是地址255.255.255.255

    • 直接广播:它会被路由转发,IP地址的网络字段定义这个网络,主机字段通常为1,如:192.168.10.255

    • 目的地址为网络中的所有设备

    • 地址范围分两种

  3. UDP组播

    • 多播也叫组播,把一组信息传递给一组目的地地址

2. Node中的dgram模块

const dgram = require('dgram')
const socket = dgram.createSocket('udp4')
2.1 socket方法
API说明
bind()绑定端口和主机
address()返回Socket地址对象
close()关闭Socket并停止监听
send()发送消息
addMembership()添加组播成员
dropMembership()删除组播成员
setBroadcast()设置是否启用广播
setTTL()设置数据报生存时间
setMulticastTTL()设置组播数据报生存时间
2.2 Socket事件
API说明
listening监听成功时触发,仅触发一次
message收到消息时触发
error发生错误时触发
close关闭socket时触发
#####. 使用Node实现UDP单播
const dgram = require('dgram')
const socket = dgram.createSocket('udp4')

socket.on('listening', () =>{
    console.log('连接成功')
})

如果客户端没有绑定端口号,操作系统会自动分配一个端口号;如果指定了端口号,必须在socket的listening事件成功后才能send消息;

const dgram = require('dgram');
const server = dgram.createSocket('udp4');
server.on('listening', r => {
  console.log('连接成功server:');
});
server.on('message', (msg, remoteAddress) => {
  console.log(`成功连接到${remoteAddress.address}:${remoteAddress.port}`);
  server.send('服务器说:小子我收到你的消息了', remoteAddress.port);
});
server.on('close', () => {
  console.log('error');
});
server.bind(3000);
const dgram = require('dgram');
const client = dgram.createSocket('udp4');
client.on('listening', () => {
  const address = client.address();
  console.log(`成功连接到${address.address}:${address.port}`);
// 直接地址:192.168.10.255  把后三位改成255就可以
// 受限地址: 255.255.255.255
  client.send('hello', 3000, 'localhost');
});
client.on('message', (msg, remoteAddress) => {
  console.log(`客户端说收到服务器的消息了${msg}`);
});
client.on('error', () => {
  console.log('server errord');
});
client.bind(3200);
4.使用Node实现UDP广播模式
    // 在监听成功后,开启广播模式
server.on('listening', () =>{
    server.setBroadcast(true) 
})
5. 使用Node实现UDP组播

server.js

// 只用在发送消息时,指定组播ip就可以了
server.on('listening', () => {
    server.send('发送组播消息', 3300, '224.0.1.100', (err) =>{
        console.log(err)
    })
})

client.js

client.on('listening', () =>{
    // 监听成功后加入特定组播组的ip,此时客户端就会收到组播数据
    client.addMemberShip('224.0.1.100')
} )

上述内容就是nodejs中怎么构建一个UDP服务,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


名称栏目:nodejs中怎么构建一个UDP服务
文章出自:http://www.tsicrk.com/article/gcejgs.html

其他资讯

让你的专属顾问为你服务

2.1512s