Nó: como configurar porta estática para o cliente udp em js nó

votos
1

Eu sou muito novo para programação Udp soquete, aqui eu implementado Cliente UDP echo que se conecta ao servidor 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!!!');
  }
}); 

quando este cliente enviar msg para o servidor, sistema operacional atribuir a porta aleatória para este cliente, mas no meu cenário eu quero porta estática que nunca vai mudar, não é possível atribuir porta estática para o cliente udp?

Publicado 20/09/2018 em 04:20
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Como mencionado na documentação, você pode usar bindmétodo para fazer isso,

Para sockets UDP, faz com que o dgram.Socket para escutar mensagens de datagramas em uma porta com o nome e endereço opcional que são passados ​​como propriedades de um opções objeto passado como o primeiro argumento. Se a porta não é especificado ou é 0, o sistema operativo tentará ligar-se a uma porta aleatória. Se o endereço não for especificado, o sistema operacional tentará escutar todos os endereços. Uma vez que a ligação estiver concluída, uma 'escuta' evento é emitido e a função de retorno opcional é chamado.

tente usar

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

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

Para mais informações seguir esta documentação .

Respondeu 20/09/2018 em 04:44
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more