// 单播
// server.js
const dgram = require('dgram')
const server = dgram.createSocket('udp4')
server.on('listening', () => {
const address = server.address()
console.log(address, 'address');
})
server.on('message', (msg, remoteInfo) => {
console.log(msg, 'msg');
console.log(remoteInfo, 'remoteInfo');
server.send('world', remoteInfo.port, remoteInfo.address)
})
server.on('error', err => {
console.log(err, 'err');
})
server.bind(3000)
// client.js
const dgram = require('dgram')
const client = dgram.createSocket('udp4')
client.send('hello', 3000, 'localhost')
client.on('listening', () => {
const address = client.address()
console.log(address, 'address');
})
client.on('message', (msg, remoteInfo) => {
console.log(msg, 'msg');
console.log(remoteInfo, 'remoteInfo');
})
client.on('error', err => {
console.log(err, 'err');
})
// 上面是不绑定端口号, 可以直接client.send('hello', 3000, 'localhost')
// 如果绑定端口号的话就不能这么写了, 必须要在listening成功以后才能写
/**
* client.bind(8000)
* client.on('listening', () => {
* const address = client.address()
* client.send('hello', 3000, 'localhost')
*
* })
*/
// 广播
// server.js
const dgram = require('dgram')
const server = dgram.createSocket('udp4')
server.on('listening', () => {
const address = server.address()
console.log(address, 'address');
server.setBroadcast(true) // 开启广播模式
// 每隔2S发送一条广播消息
setInterval(() => {
// 直接地址 192.168.110.7
server.send('hello', 8000, '192.168.110.7')
// 受限地址 255.255.255.255
// server.send('hello', 8000, '255.255.255.255')
}, 2000)
})
server.on('message', (msg, remoteInfo) => {
console.log(msg, 'msg');
console.log(remoteInfo, 'remoteInfo');
server.send('world', remoteInfo.port, remoteInfo.address)
})
server.on('error', err => {
console.log(err, 'err');
})
server.bind(3000)
// client.js
const dgram = require('dgram')
const client = dgram.createSocket('udp4')
client.on('message', (msg, remoteInfo) => {
console.log(msg.toString().trim(), 'msg');
console.log(remoteInfo, 'remoteInfo');
})
client.on('error', err => {
console.log(err, 'err');
})
client.bind(8000)
// 组播
// server.js
const dgram = require('dgram')
const server = dgram.createSocket('udp4')
server.on('listening', () => {
const address = server.address()
console.log(address, 'address');
setInterval(() => {
server.send('hello', 8000, '224.0.1.100')
}, 2000);
})
server.on('message', (msg, remoteInfo) => {
console.log(msg, 'msg');
console.log(remoteInfo, 'remoteInfo');
server.send('world', remoteInfo.port, remoteInfo.address)
})
server.on('error', err => {
console.log(err, 'err');
})
server.bind(3000)
// client.js
const dgram = require('dgram')
const client = dgram.createSocket('udp4')
client.on('listening', () => {
const address = client.address()
console.log(address, 'address');
client.addMembership('224.0.1.100')
})
client.on('message', (msg, remoteInfo) => {
console.log(msg.toString().trim(), 'msg');
console.log(remoteInfo, 'remoteInfo');
})
client.on('error', err => {
console.log(err, 'err');
})
client.bind(8000)