Hallo
wie kann ich in eine laufende Verbindung (Port) mich zwischenschalten,abhören?
Mein Problem ist das ich ein Gerät habe welches mit ein bestimmten Programm über LAN Kabel kommuniziert und Daten an den Rechner schickt. Die Software muss dabei mit dem Gerät in Verbindung bleiben weil es auch Information zum Gerät schickt welches es am laufen hält. Der Datenstrom das vom Gerät kommt hört,solang man vom Software aus nicht abbricht, nicht auf.
Ich dachte mit ein einfachen Socket welches auf dem Port zugreift wohin die Daten fließen könnte man sich zwischenschalten nur Passiert bei mir nichts. Kann es sein das einige Ports keine 2. Anwendung zulassen die mitschneiden möchten? Wenn ja wie umgehe ich es und kann mitschneiden was an Daten rüberkommen.
Ablauf ist folgenderweise:
1- Starte die Software vom Gerät
2- Gerät fängt an Daten an diese Software zu schicken
3- Ich starte mein Java Programm und versuche vom Port wohin die Daten gehen mitzuschneiden.
Mit Wireshark konnte ich überprüfen auch wirklich die Daten an den richtigen Port geschickt werden, der zeigt mir sogar an welche Daten gerade vom Port fließen genau die müsste ich mit mein Java Programm auch abfangen.
Nur mein Java Code tut so als ob er nie Daten bekommt.
Folgenden Code hab ich dazu geschrieben:
wie kann ich in eine laufende Verbindung (Port) mich zwischenschalten,abhören?
Mein Problem ist das ich ein Gerät habe welches mit ein bestimmten Programm über LAN Kabel kommuniziert und Daten an den Rechner schickt. Die Software muss dabei mit dem Gerät in Verbindung bleiben weil es auch Information zum Gerät schickt welches es am laufen hält. Der Datenstrom das vom Gerät kommt hört,solang man vom Software aus nicht abbricht, nicht auf.
Ich dachte mit ein einfachen Socket welches auf dem Port zugreift wohin die Daten fließen könnte man sich zwischenschalten nur Passiert bei mir nichts. Kann es sein das einige Ports keine 2. Anwendung zulassen die mitschneiden möchten? Wenn ja wie umgehe ich es und kann mitschneiden was an Daten rüberkommen.
Ablauf ist folgenderweise:
1- Starte die Software vom Gerät
2- Gerät fängt an Daten an diese Software zu schicken
3- Ich starte mein Java Programm und versuche vom Port wohin die Daten gehen mitzuschneiden.
Mit Wireshark konnte ich überprüfen auch wirklich die Daten an den richtigen Port geschickt werden, der zeigt mir sogar an welche Daten gerade vom Port fließen genau die müsste ich mit mein Java Programm auch abfangen.
Nur mein Java Code tut so als ob er nie Daten bekommt.
Folgenden Code hab ich dazu geschrieben:
Code:
public class Receive {
ServerSocket socket;
ODTFilter fil;
Receive(int portNr,String url,int value) throws IOException{
socket = new ServerSocket(portNr);
fil = new ODTFilter(url,value);
}
public void makeMappa() throws IOException {
boolean start = true;
byte[] b = new byte[4];
Socket client = serverSocket.accept();
InputStream input = client.getInputStream(); // Hier bleibt mein Programm stehen
while(start) {
input.read(b);
fil.fillMappa(b);
}
input.close();
}