Как я могу отправить UDP-данные в Deno?

#udp #deno

#udp #deno

Вопрос:

Я попытался использовать следующий код в своем measure.ts скрипте:

 Deno.DatagramConn.send(...)
 

Когда я запускаю свой скрипт следующим образом: deno run --unstable --allow-all measure.ts я получаю следующую ошибку:

 Property 'DatagramConn' does not exist on type 'typeof Deno'. 'Deno.DatagramConn' is an 
unstable API. Did you forget to run with the '--unstable' flag?
 

Эта ошибка, похоже, одновременно отрицает и подтверждает существование Deno.DatagramConn API

Аналогично я пробовал

 Deno.connect({transport : 'udp'})
 

но это дает мне следующую ошибку (что, вероятно, имеет смысл, поскольку UDP «без подключения»):

 Type '"udp"' is not assignable to type '"tcp"
 

Ответ №1:

Кажется, я понял это. На самом деле мне нужно сначала listen подключиться к сокету, а затем отправить по нему данные.

 const addr : Deno.NetAddr = {transport: "udp", port: 8125, hostname: "1.2.3.4"};

const socket = await Deno.listenDatagram({
        port: 0,
        transport: "udp",
        hostname: "0.0.0.0"
       });
  
socket.send(new Uint8Array(), addr);
 

Это легко, когда вы знаете, как ¯_(ツ)_/¯