我尝试使用带有Java的IOT设备,但Java没有收到任何UDP数据包。我的数据包非常简单,我相信这是问题所在。 wireshark也会收听所有数据包和类似的DELPHI软件。
我的代码:
package br.imply.server;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class Main {
public static void main(String[] args) {
try {
int porta = 4865;
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
DatagramSocket serverSocket = new DatagramSocket(porta);
boolean isStopped = false;
InetAddress inetAddress = InetAddress.getLocalHost();
System.out.println("Iniciando servidor: " + inetAddress.getHostAddress() + ":" + porta);
while (!isStopped) {
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
System.out.println("Aguardando conexão...");
serverSocket.receive(receivePacket);
System.out.println("Conectado em " + receivePacket.getAddress());
String sentence = new String(receivePacket.getData());
System.out.println("received: " + sentence);
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase();
sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
serverSocket.send(sendPacket);
//do something with clientSocket
}
} catch (IOException ex) {
System.out.println(Main.class.getName() + " " + ex);
}
}
}