DataInputStream over DatagramSocket



我写了一个通用程序,可以接受来自DataInputStream的数据。但是最近我尝试使用DatagramSocket从UDP接收数据。我已经搜索了很多,但我也无法找到一种方法来操作从DatagramSocket到DataInputStream的传入数据。从逻辑上讲,由于两者都是传入数据,因此应该有一种方法可以集成这两个对象,对吗?我错了吗?

在得到EJP的回答后,我现在正在使用这样,对吗?

byte[] buffer = new byte[2048];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(packet.getData(), packet.getOffset(), packet.getLength()));
While(true){
    dsocket.receive(packet);
    dis = new DataInputStream(new ByteArrayInputStream(packet.getData(), packet.getOffset(), packet.getLength()));
    reader = new MAVLinkReader(dis,MAVLinkMessage.MAVPROT_PACKET_START_V10);
    mesg = reader.getNextMessage();
    while (mesg != null) {...do stuff...}
}

现在我的感觉是,因为每次 dis 中以前剩余的字节消失时,读取器都会初始化为新的 dis。

简单。

DataInputStream din = new DataInputStream(new ByteArrayInputStream(packet.getData(), packet.getOffset(), packet.getLength());

其中packetDatagramPacket.

相关内容

  • 没有找到相关文章

最新更新