节点:如何在节点js

时间:2018-09-20 04:20:41

标签: node.js sockets udp

我对Udp套接字编程非常陌生,在这里我实现了连接到UDP服务器的echo UDP Client

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 :(得分:1)

如文档中所述,您可以使用bind方法来做到这一点,

  

对于UDP套接字,使dgram.Socket侦听作为作为第一个参数传递的options对象的属性传递的命名端口和可选地址上的数据报消息。如果未指定端口或端口为0,则操作系统将尝试绑定到随机端口。如果未指定address,则操作系统将尝试侦听所有地址。绑定完成后,将发出“监听”事件并调用可选的回调函数。

尝试使用

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

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

有关更多信息,请遵循此documentation

相关问题