ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
492
492
EMPFEHLEN
-
HI,
ich habe folgendes vor. Ich möchte mit dem Programm hamachi ein virtuelles netzwerk aufbauen. Fals ihr das Prggi net kennt hier der link http://www.hamachi.cc/. Wie kann ich jetzt meinem socket z.b. sagen das er die daten über das hamachi netzwerk sendet und nicht über das normal reale netzwerk.
Zur erklärung das hamachi netzwerk simuliert eine Netzwerkkarte und stellt so ein virtuelles locales netz her. Mit viruellen ip addressen und ports.
-
03.09.06 00:22 #2MeinerEiner_80 Tutorials.de Gastzugang
Moin!
Wenn das Programm eine Netzwerkkarte simuliert, solltest du die "bind" Methode der SocketKlassen nutzen, um diese an das entsprechende Netzwerkinterface zu binden...
*grüssle*
MeinerEiner
-
habe leider keine antwort wie ich das mache. Kannst du mir da ein beispiel geben. Auserdem wie bekomme ich die interfaces heraus? Gibt es da irgendeine möglichkeit die zu ermitteln? Mein zweiter gedanke war das der user sich eine Netzwerkinterface heraussuchen kann. Wie mache ich das?
-
03.09.06 08:15 #4MeinerEiner_80 Tutorials.de Gastzugang
Moin!
Alle lokale IP-Adressen und somit alle Netzwerkinterfaces erhält man so :
Code :1 2 3 4
String localHost = InetAddress.getLocalHost().getHostName(); for(InetAddress ia : InetAddress.getAllByName(localHost)){ System.out.println(ia); }
Oder beispielsweise so:
Eine dieser Addressen wird wohl deine virtuelle NetzwerkIP sein.Code :1 2 3 4
Enumeration<InetAddress> enumeration = NetworkInterface.getInetAddresses(); while (enumeration.hasMoreElements()) { System.out.println(enumeration.next()); }
Und wie man die bind methode nutzt, sollte sich eigentlich aus der API erklären:
Code :1 2 3 4 5 6 7 8 9
//Client Socket s = new Socket(); s.bind(new InetSocketAddress(yourVirtuellInetAddress,yourVirtuellPort)); s.connect(new InetSocketAddress(yourVirtuellServerInetAddress,yourVirtuellServerPort)); //Server ServerSocket serverS = new ServerSocket(); serverS.bind(new InetSocketAddress(yourVirtuellServerInetAddress,yourVirtuellServerPort));
*grüssle*
MeinerEinerGeändert von MeinerEiner_80 (03.09.06 um 08:33 Uhr)
-
HI MeinerEiner_80,
danke für deine schnelle antwort. Leider habe ich immer noch Problem mit dem herausfinden der Netzwerkinterfaces. Habe jetzt deinen ersten Code genommen. Folgende ausgabe bekomme ich:
Eigendlich sollte es doch so aussehen das er z.b. bei meinem netzwerk spezifikationen die locale ip ausgibt "192.168.69.1". Alle weiteren Netzwerkinterfaces fehlen. Z.b. meine wlan karte wir auch nicht aufgeführt nur die Netzwerkkarte. Und seit wann ist der localhost 127.0.0.2 müsste doch eigendlich 127.0.0.1 sein?Code :1
laptop/127.0.0.2
-
03.09.06 14:25 #6MeinerEiner_80 Tutorials.de Gastzugang
Okay, der zweite Code schnipsel war mein Fehler, "getInetAddresses" ist nicht statisch..
Also probiers so:
Code :1 2 3 4 5 6 7 8
Enumeration<NetworkInterface> enu = NetworkInterface.getNetworkInterfaces(); while(enu.hasMoreElements()){ Enumeration<InetAddress> enumeration = enu.nextElement().getInetAddresses(); while (enumeration.hasMoreElements()) { System.out.println(enumeration.nextElement()); } }
Ausgabe:
Code :1 2
/127.0.0.1 /192.168.1.22
Die zweite Addresse bekomme ich allerdings nur, wenn ich , die IP fest vergeben habe, und die Verbindung auch aktiv ist. Also eine Netzwerkkarte die nicht ans Netz angeschlossen und aktiv ist, wird nicht angezeigt..
*grüssle*
MeinerEiner
Ähnliche Themen
-
[C#] Permanent Daten über Sockets versenden
Von sebbi1234 im Forum .NET Windows FormsAntworten: 0Letzter Beitrag: 16.04.08, 16:59 -
Ausgabe bestimmter Daten
Von absyrtos im Forum PHPAntworten: 3Letzter Beitrag: 18.09.06, 22:44 -
Bild über Netzwerk versenden
Von Thomas Darimont im Forum JavaAntworten: 7Letzter Beitrag: 28.07.05, 11:04 -
Auswahl bestimmter Daten
Von AndreG im Forum PHPAntworten: 5Letzter Beitrag: 22.04.04, 23:32 -
Faxe über Netzwerk versenden...
Von surffix im Forum NetzwerkeAntworten: 1Letzter Beitrag: 01.07.03, 11:02





Zitieren
Login





