Dart Udp不会接收所有数据,但是节点会接收

时间:2018-12-17 08:19:15

标签: node.js dart udp

我在Node.js中使用此代码,并在Udp端口6000中接收所有即将到来的数据

const dgram = require("dgram");
const server = dgram.createSocket("udp4");

server.on("error", err => {
  console.log(`server error:\n${err.stack}`);
  server.close();
});

server.on("message", (msg, rinfo) => {
  console.log(` Data : ${msg.toString("hex")} from 
 ${rinfo.address}:${rinfo.port}`);
});

server.on("listening", () => {
  const address = server.address();
  server.setBroadcast(true);
  console.log(`server listening ${address.address}:${address.port}`);
});

server.bind(6000);

数据是这样的:

  Data :c0a80afe534d415254434c4f5544aaaa0f013001acf036ffff00000000444e from 
  192.168.1.10:6000

现在这是Dart代码:

import 'dart:io';

void main() {
  RawDatagramSocket.bind(InternetAddress.ANY_IP_V4, 6000).then((value) {
    value.listen((event) {
      if (event == RawSocketEvent.READ) {
        var datagram = value.receive();
        print(new String.fromCharCodes(datagram.data));
      }
    });
  });
}

此代码未收到该节点看到的即将到来的数据

它怎么可能从dart udp发送代码接收数据

import 'dart:io';

void main(List<String> args) {
  RawDatagramSocket.bind(InternetAddress.ANY_IP_V4, 7000)
      .then((RawDatagramSocket socket) {
    print('Sending from ${socket.address.address}:${socket.port}');
    int port = 6000;
    socket.send('Hello from UDP land!\n'.codeUnits,
        InternetAddress.LOOPBACK_IP_V4, port);
  });
}

我如何使用Dart接收即将到来的数据? 我想接收在dart lang中看到的任何节点 谢谢

更新:Node.js读取而未转换为字符串的原始数据

 <Buffer c0 a8 0a fe 53 4d 41 52 54 43 4c 4f 55 44 aa aa 0f 01 33 01 ac f0 
 36 ff ff 00 00 00 00 3c b4>

0 个答案:

没有答案