【发布时间】:2015-03-30 20:28:51
【问题描述】:
我正在尝试使用 Java 从本地主机上的 UDP 端口读取数据。我对 Java 很擅长,但我现在有一段时间无法解决这个问题......
问题是,在我使用DatagramSocket 连接并使用DatagramPacket 接收数据包后,我得到一些没有意义的字节,我看不到与我期望的数据的连接。打印输出如下:
$őZAŇ"¤E€^ĽxΕ’M@ŢúCîS5;Ń8†8Ŕ$5»ôxŕ¸Ţf+?’Ť;Ů%>ż?>żA€ĹĽ‘_
所以,我显然是以错误的方式处理某些事情。我还阅读了一些 Java 的签名/未签名数据问题。
大约一年前,我使用 C# 创建了一个类似的应用程序,一切都很顺利。
真心希望有人能帮忙。
这是代码(其中一个版本,我尝试了很多不同的解决方案)
DatagramSocket mySocket = new DatagramSocket(null);
InetSocketAddress addr = new InetSocketAddress("127.0.0.1", 20777);
mySocket.bind(addr);
byte[] receiveData = new byte[152];
while(true)
{
DatagramPacket receivePacket = new DatagramPacket(receiveData, 0, receiveData.length);
mySocket.receive(receivePacket);
byte[] barray = receivePacket.getData();
ByteArrayInputStream inputStream = new ByteArrayInputStream(barray);
DataInputStream dInputStream = new DataInputStream(inputStream);
float a = dInputStream.readFloat();
System.out.println(a);
}
【问题讨论】:
-
你能贴出你用来传输和接收数据的代码吗?
-
代码前接收现在可用。我不熟悉发射器的代码,是一个windows应用程序...