Daten von einem Decoder erhalten

Hey,

Situation:
Ich habe ein Decoder der mit einem Rechner per Ethernet verbunden ist. Per Wireshark kann ich sehen wie verschiedene Hex-Daten an den Rechner geschickt werden. Diese Daten möchte ich zuerst abfangen, dann umwandeln und zum Schluss in eine Datenbank speichern.

Leider scheitere ich schon im ersten Schritt, die Daten zu empfangen… Mein Code läuft zwar(ohne zu stoppen), aber es werden auf der Konsole keine Daten angezeigt.
Kann mir jemand helfen, einen “Sniffer” zu basteln der diese Daten abfängt, wie bei Wireshark?

Mein Code mit dem ich es probiert habe…:

import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.Socket;

class TCPClient {
	public static void main(String argv[]) throws Exception {
		String sentence;
		String modifiedSentence;
		BufferedReader inFromUser = new BufferedReader(new InputStreamReader(
				System.in));
		Socket clientSocket = new Socket("192.168.X.XX", XXXX);
		DataOutputStream outToServer = new DataOutputStream(
				clientSocket.getOutputStream());
		BufferedReader inFromServer = new BufferedReader(new InputStreamReader(
				clientSocket.getInputStream()));
		sentence = inFromUser.readLine();
		outToServer.writeBytes(sentence + '
');
		modifiedSentence = inFromServer.readLine();
		System.out.println("FROM SERVER: " + modifiedSentence);
		clientSocket.close();
	}
}```

Danke.

Einen Sniffer wie WireShark (also einen, der ALLE Ethernet Frames sieht) kannst du mit Java nicht ohne Weiteres programmieren. Du kannst aber eine ordentliche Netzwerkkommunikation zwischen Deinem Java Programm und dem Decoder programmieren. Was ist denn Server und was Client?

Ich möchte auch nicht Wireshark programmieren, wollte nur damit sagen dass Wireshark die Daten sieht die vom Decoder an den Rechner über TCP geschickt werden.
Der Server ist der Decoder und der Client ist dann der Rechner.

Habe schon gegoogelt, aber ich finde immer nur den obigen genannten Code, um Daten zu empfangen. Aber der funktioniert nicht, weil er mir keine Daten anzeigt in der Konsole…

Du benutzt einen BufferedReader zum Lesen, der liest/erwartet Textdaten. Ich vermute mal, dass der Decoder wohl eher Rohdaten sendet und Dein readLine() ewig wartet (wäre leicht durch System.out… herauszufinden). Benutze z.B. DataInputStream zum Lesen der Daten, zum weiterleiten nutzt Du ja auch DataOutputStream.