Hallo,
ich habe meinen Windows PC eine statische IP vergeben (192.168.140.1) und direkt ein externes Gerät (192.168.140.10) angeschlossen.
Dieses Gerät sendet UDP Pakete mit 4Byte Nutzdaten von und an Port 2020.
Mit Wireshark (am Windows PC) kann ich die Pakete sehen, dass diese auch gesendet werden:
Mein UDP Client sieht folgend aus:
Der Code wird mit Eclipse gestartet, jedoch kann ich keine Pakete empfangen.
Weiß jemand warum?
Kann es sein das Eclipse irgendwas blockiert?
Testweise habe ich mir einen Server dazu geschrieben. Wenn ich die Daten über den Localhost dann sende, funktioniert es ohne Probleme.
godi
ich habe meinen Windows PC eine statische IP vergeben (192.168.140.1) und direkt ein externes Gerät (192.168.140.10) angeschlossen.
Dieses Gerät sendet UDP Pakete mit 4Byte Nutzdaten von und an Port 2020.
Mit Wireshark (am Windows PC) kann ich die Pakete sehen, dass diese auch gesendet werden:
Hex Dump"1","0.000000","192.168.140.10","192.168.140.1","UDP","60","2020 → 2020 Len=4"
0000 98 fa 9b 6e bd 77 64 4d 70 00 e8 e7 08 00 45 00
0010 00 20 2c 53 40 00 40 11 75 1d c0 a8 8c 0a c0 a8
0020 8c 01 07 e4 07 e4 00 0c 25 f2 2f bf 01 00 00 00
0030 00 00 00 00 00 00 00 00 00 00 00 00
Mein UDP Client sieht folgend aus:
Java:
import java.io.*;
import java.net.*;
import java.nio.ByteBuffer;
public class UDPClient {
public static void main(String[] args) {
String hostname = "192.168.140.1"; //"127.0.0.1";
int port = 2020;
try {
InetAddress address = InetAddress.getByName(hostname);
DatagramSocket socket = new DatagramSocket(port, address);
socket.setReceiveBufferSize(4 * 1024);
System.out.println("Socket open, receive Data!");
while (true) {
byte[] buffer = new byte[4];
DatagramPacket response = new DatagramPacket(buffer, buffer.length);
socket.receive(response);
ByteBuffer receivedData = ByteBuffer.wrap(response.getData());
System.out.println(receivedData.getInt());
}
} catch (SocketTimeoutException ex) {
System.out.println("Timeout error: " + ex.getMessage());
ex.printStackTrace();
} catch (IOException ex) {
System.out.println("Client error: " + ex.getMessage());
ex.printStackTrace();
}
}
}
Der Code wird mit Eclipse gestartet, jedoch kann ich keine Pakete empfangen.
Weiß jemand warum?
Kann es sein das Eclipse irgendwas blockiert?
Testweise habe ich mir einen Server dazu geschrieben. Wenn ich die Daten über den Localhost dann sende, funktioniert es ohne Probleme.
godi