Socket Problem?

Status
Nicht offen für weitere Antworten.

nO-0n3

Mitglied
Guten Abend!

Bevor ich genau auf das Problem eingehe kurz zum drumherum.

Ich möchte überprüfen, auf welchen Computern in einem Netzwerk, meine Anwendung läuft.
Meine Idee dazu: versuchen ein Socket zu dem bestimmten Port
(auf dem die Anwendung lauft) zu erstellen und wenn dies gelingt weiß ich das
dort das Programm drauf ist. So weit so gut.
Ich weiß nicht ob ich den richtigen Ansatz habe oder ob das schon am Ziel vorbeigeschossen ist.
Auf jeden Fall habe ich das ausprobiert und damit es möglichst schnell geht folgendermaßen realisiert:

Ich laufe in einer Schleife von 1-255 durch und baue immer eine verbindung mit
Java:
s.connect(new InetSocketAddress(ip,xxxx),50);
auf. Wobei xxxx der Port ist auf dem die Anwendung läuft und 50 das max Timeout.

So nun zum Problem:
(Annahme) auf meinem Rechner (10.0.0.59) läuft die Anwendung.
Wenn ich nun das Programm von 1-255 durchlaufen lasse bekomme ich bei jedem ein connect timeout.
Wenn ich es aber nur von 50-60 laufen lasse dann findet es den Server.
Ich habe dann ein bisschen herumprobiert
und immer wenn ich <=10 IP-Adressen suche kann es darunter die Server ausmachen, sobald ich mehr also 10 durchgänge mache findet es keinen.
Woran kann das liegen?

Zur Übersicht nochmal der vereinfachte Programmausschnitt:

Java:
for(int i=0;i<255;i++) {
  
   ip.replace(lastpos,ip.length(),""+i);
   if(lookUp(ip.toString())) {
      System.out.print(ip+": SERVER");
   }
   else System.out.println(ip+": nothing");
}

wobei lookUp so aussieht:
Java:
boolean lookUp(String ip) {
   boolean found;
   Socket s = new Socket();

   try {
      s.connect(new InetSocketAddress(ip,xxxx),50);
      found=true;
   }
   catch(IOException ioe) {
      found = false;
   }
   finally {
      try { if(s!=null) s.close(); }
      catch(IOException ioe) {
         System.err.println(ioe.getMessage());
      }
   }return found;
}

Die Ip-Adressen werden mit
Java:
ip.replace(lastpos,ip.length(),""+i);
alle richtig erstellt (10.0.0.1-255)

Ich hoffe ich konnte das Problem verständlich schildern und
freue mich auf baldige Rückmeldung.

mfg nO-0n3
 
Zuletzt bearbeitet:

neonfly

Aktives Mitglied
(Annahme) auf meinem Rechner (10.0.0.59) läuft die Anwendung.
Zur deiner Annahme möchte ich dir nur mitteilen, dass der Port 2001 als Trojaner-Port bekannt ist.

Jegliche Hilfe, ein Programm zu entwicklen, was über diesen Port kommuniziert, kannst du von meiner Seite aus vergessen.

Falls du kein Schadprogramm schreiben willst, nimm einfach einen anderen Port und melde dich hier nochmals.
 

nO-0n3

Mitglied
Wirklich? Oh ok.
Der Port spielt absolut keine Rolle dan nehmen wir halt 7352 oder xxxx es
ist vollkommen egal.

Zur Info es handelt sich dabei um einen RMI Server, aber das ist nicht so wichtig
da ich bei diesem Port auf einen Control Server zugreife der mit dem RMI Server gekoppelt ist.
Und dieser wartet mit einem einfachen
Java:
Socket s;
ServerSocket ss = .......
s = ss.accept();
auf eingehende Verbindungen.

Hoffe du bist jetzt bereit zu helfen.
 

neonfly

Aktives Mitglied
Wenn du den Code in deinem Eingangspost wieder in TAGS setzt, dann schau ich mir das morgen (heute) in der Mittagspause an.
 

nO-0n3

Mitglied
So erledigt^^
Das editieren ist ganz schön trickreich oO

Dankeschön vielleicht fällt dir ja was ein.

EDIT:
Habe hier noch eine .txt angehängt mit einem compilier fähigem Programmteil.
 

Anhänge

  • ServerScan.txt
    1,5 KB · Aufrufe: 6
Zuletzt bearbeitet:

neonfly

Aktives Mitglied
Wurde leider nix in der Mittagspause, ich hab mir dein Problem nun eben mal kurz betrachtet und ein kleines Snippet runter getippt, wie ich an die Sache heran gegangen wäre (Code ist ungetestet, da erster Lösungsansatz aus dem Kopf).

Java:
try {
            //deine Netzwerkkarte
            NetworkInterface lvNetzwerkInterface = NetworkInterface.getByName("<name>");
            //alle IP's die mit dieser Karte verbunden sind, so habe ich das verstanden.
            Enumeration lvAddresses = lvNetzwerkInterface.getInetAddresses();
            Object lvObjekt = lvAddresses.nextElement();
            InetAddress lvAddress = (InetAddress) lvObjekt;
            //irgendeine der IP Addressen
            String lvFirstIP = lvAddress.getHostAddress();
            //Index des 3. Punktes finden
            Integer lvInteger = lvFirstIP.lastIndexOf( "." );
            //und die Broadcast IP basteln.
            String lvBroadcast = lvFirstIP.substring(0, lvInteger) + "255";
            //hier sollten alle Rechner im Netz antworten (hoffe ich)
            Socket so = new Socket(lvBroadcast, <deinPort>);
        } catch(Exception e) {}

Bin gespannt, ob das funktioniert.
 
G

Gast2

Gast
Zur deiner Annahme möchte ich dir nur mitteilen, dass der Port 2001 als Trojaner-Port bekannt ist.

Jegliche Hilfe, ein Programm zu entwicklen, was über diesen Port kommuniziert, kannst du von meiner Seite aus vergessen.
jeglicher Wunsch von mir einen Job als Systemadministrator zu bekommen kannst Du mit der Einstellung vergessen ... da Du jegliches Programm installieren würdest was Port 80 verwendet ... http://www.iana.org/assignments/port-numbers ... dort ist der Port nicht als "Bad-Port" gelistet

Code:
//hier sollten alle Rechner im Netz antworten (hoffe ich)
Socket so = new Socket(lvBroadcast, <deinPort>);
Deine Hoffung verfliegt ... Du verwechselst hier TCP mit UDP

nO-0n3 hat gesagt.:
Ich habe dann ein bisschen herumprobiert
und immer wenn ich <=10 IP-Adressen suche kann es darunter die Server ausmachen, sobald ich mehr also 10 durchgänge mache findet es keinen.
Woran kann das liegen?
an Windows ... ich vermute das der GC nicht schnell genug den Socket aufräumt und Windows erklärt "das Limit ist noch nicht überschritten" ... Deine Klasse ist soweit richtig

hand, mogel
 

nO-0n3

Mitglied
Schonmal danke für eure beiden Antworten.

Das Windows nicht mithalten kann habe ich fast befürchtet.
Und hat sich jetzt nach mehrer Versuchen auch bestätigt,
ab einer Wartezeit von ca. 1 sek zwischen den
Java:
lookUp()
Aufrufen findet er alle Server die im Netzwerk gestartet sind.
Aber das ist eindeutig zulang.

Hat jemand vielleicht eine Idee wie man das Problem anders lösen kann?
Vielleicht den GC sanft mitteilen schneller zu räumen?, oder überhaupt anders
nach den Server suchen?
 
G

Gast2

Gast
Das Windows nicht mithalten kann habe ich fast befürchtet.
Und hat sich jetzt nach mehrer Versuchen auch bestätigt,
ab einer Wartezeit von ca. 1 sek [...] findet er alle Server die im Netzwerk gestartet sind.
danke ... Du bestätigst meine Vermutung

Vielleicht den GC sanft mitteilen schneller zu räumen?
glaube System.gc() oder so ... damit bittest Du den GC mal Aufzuräumen

Hat jemand vielleicht eine Idee wie man das Problem anders lösen kann?
[...]
oder überhaupt anders nach den Server suchen?
die Idee von neonfly ist dafür geeignet ... mach Dich mal zum Thema Broadcast schlau

hand, mogel
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Socket Problem Java Basics - Anfänger-Themen 3
F socket-problem Java Basics - Anfänger-Themen 6
J Socket - BufferedReader lese Problem Java Basics - Anfänger-Themen 2
izoards Socket Kommunikation Java Basics - Anfänger-Themen 16
Nina Pohl Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist Java Basics - Anfänger-Themen 6
G Socket Verbindung aufbauen Java Basics - Anfänger-Themen 11
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
S Asynchrone Socket-Abfragen Java Basics - Anfänger-Themen 5
Meeresgott OOP Socket Verbindung richtig Kapseln Java Basics - Anfänger-Themen 0
O Socket by reference übergeben Java Basics - Anfänger-Themen 0
J Socket schließen - Ist eine SocketException unumgänglich? Java Basics - Anfänger-Themen 4
D Socket ---> Server Socket worauf muss ich achten? Java Basics - Anfänger-Themen 2
N Socket-Programmierung Java Basics - Anfänger-Themen 4
M wait/notify bei Socket Java Basics - Anfänger-Themen 4
B Input/Output Socket I/O - outputStream.write(-1) Java Basics - Anfänger-Themen 2
B Socket OutputStream Java Basics - Anfänger-Themen 17
B Socket Kommunikation in beide Richtungen Java Basics - Anfänger-Themen 12
B Socket, args Java Basics - Anfänger-Themen 22
L Socket in JTextArea Java Basics - Anfänger-Themen 9
T Input/Output Zwei InputStreams von einem Socket Java Basics - Anfänger-Themen 2
T socket.close aber verbindung besteht noch Java Basics - Anfänger-Themen 4
F Buffered Image über Socket versenden Java Basics - Anfänger-Themen 6
E Socket InputStream "terminiert" nicht Java Basics - Anfänger-Themen 4
B Threads Interrupt während Socket.read()? Java Basics - Anfänger-Themen 3
M Versand von Nachrichten via Socket (Delay) Java Basics - Anfänger-Themen 21
E Input/Output Socket bekommt keine Verbindung bei funktionierendem Fremdziel Java Basics - Anfänger-Themen 2
E Socket (Client) dauerhaft aktiv? Java Basics - Anfänger-Themen 9
D Java - Socket - Datenübertragung Java Basics - Anfänger-Themen 18
E Input/Output einfachen Socket für XML-Anfragen bauen Java Basics - Anfänger-Themen 13
R Cannot find a free socket for the debugger Java Basics - Anfänger-Themen 6
F Socket Kommunikation Java Basics - Anfänger-Themen 4
M "Connection reset" gbxRemote Socket Java Basics - Anfänger-Themen 9
N Files mit Byte an Socket versenden Java Basics - Anfänger-Themen 2
L FTP per Socket Java Basics - Anfänger-Themen 2
M Audio Stream läuft auf :connection abort: socket write error Java Basics - Anfänger-Themen 2
M Socket Server Java Basics - Anfänger-Themen 9
G Socket erstellen dauert sehr lange. Java Basics - Anfänger-Themen 4
H Java Socket Java Basics - Anfänger-Themen 14
A XML Daten über Socket Java Basics - Anfänger-Themen 3
I Allgemeine fragen zu Socket server Java Basics - Anfänger-Themen 6
C Socket Programmierung Java Java Basics - Anfänger-Themen 4
F Socket Instanz auf Klasse welche von Socket erbt zuweisen Java Basics - Anfänger-Themen 3
ven000m Wieso antwortet mein Server nicht mehr (Socket Anwendung) Java Basics - Anfänger-Themen 2
J Daten von einem (char*)Socket einlesen. Java Basics - Anfänger-Themen 3
S Java Socket Java Basics - Anfänger-Themen 3
K Frage zu SdtOut streams bzw. Socket Programmierung Java Basics - Anfänger-Themen 3
M HTTP-Anfragen und Socket Java Basics - Anfänger-Themen 2
A von Socket-Stream lesen Java Basics - Anfänger-Themen 4
M Ändern einer Socket-Eigenscheft aus einem modalen Dialog? Java Basics - Anfänger-Themen 6
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben