我有这个线程从远程服务器接收数据作为UDP数据包。它没有进入IF条款。 这是我的主题:
@Override
public void run() {
logger.info("Démarrage");
try {
socket = new DatagramSocket(10234);
while (true) {
byte[] buffer = new byte[2048];
DatagramPacket packet = new DatagramPacket(buffer, 2048);
socket.receive(packet);
Message message = new Message();
if (message.parseData(packet.getData())) {
messageUDP =message.message;
logger.info(messageUDP);
data.main(messageUDP);
} else {
logger.info("Could not parse message or message not related to Postfix");
logger.info("Message was: {}", new String(packet.getData()));
}
}
} catch (IOException e) {
logger.error("IOException:", e);
} catch (Exception e) {
logger.error("Exception:", e);
}
logger.debug("Arrêt");
}
我在任何地方添加了logger.info
,知道它被阻止了。我发现每次socket.receive(packet);
都会阻止它。
但我收到端口10234上的数据,我使用 tcpdump 命令验证了该数据。
所以我不知道这里可能出现什么问题。
注意:此代码之前有效,我没有更改任何内容,今天我什么都没收到。