Узел: как установить статический порт для клиента udp в узле js - PullRequest
0 голосов
/ 20 сентября 2018

Я очень новичок в программировании Udp Socket, здесь я реализовал эхо-UDP-клиент, который подключается к UDP-серверу

var buffer = require('buffer');
var udp = require('dgram');
// creating a client socket
var client = udp.createSocket('udp4');

//buffer msg
var data = Buffer.from('Pradip Shinde');

client.on('message',function(msg,info){
  console.log('Data received from server : ' + msg.toString());
  console.log('Received %d bytes from %s:%d\n',msg.length, info.address, info.port);
});

//sending msg
client.send(data,9300,'192.168.1.187',function(error){
  if(error){
    client.close();
  }else{
    console.log('Data sent from client!!!');
  }
}); 

, когда этот клиент отправляет сообщение на сервер, операционная система назначает этому клиенту случайный порт, нов моем сценарии я хочу статический порт, который никогда не изменится, возможно ли назначить статический порт клиенту udp?

1 Ответ

0 голосов
/ 20 сентября 2018

Как упомянуто в документации, вы можете использовать метод bind, чтобы сделать это,

Для UDP-сокетов, вызывает dgram.Socket для прослушивания сообщений дейтаграммы на именованном порту и дополнительном адресекоторые передаются как свойства объекта параметров, переданного в качестве первого аргумента.Если порт не указан или равен 0, операционная система попытается подключиться к произвольному порту.Если адрес не указан, операционная система попытается прослушать все адреса.После завершения привязки генерируется событие прослушивания и вызывается дополнительная функция обратного вызова.

Попробуйте использовать

// Creating a client socket
var client = udp.createSocket('udp4');

// Bind your port here
client.bind({
  address: 'localhost',
  port: 8000,
  exclusive: true
}); 

Для получения дополнительной информации следуйте этой документации 1012 *.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...