# Chatprogramm



## joschika77 (17. Mrz 2004)

Hallo.

Kann jemand helfen?
Wie kann man vom eigenen Rechner die IP auslesen und ins Textfeld legen?

Und dann würde ich gern wissen wie man sowas im Chat realisiert:
Also ich habe ein Cliet und einen Serverprogramm.
Der Textaustausch funktioniert.
Wie kann ich wenn der Server gestartet ist am Client automatisch erkennen wecher Server erreichbar ist?
Helft mir?

Gruß Ronn


----------



## joschika77 (17. Mrz 2004)

Also die IP hab ich.


```
String host = InetAddress.getLocalHost().toString();
int a = host.length();
String hostip = host.substring(6,a);
```

Nun fehlt nur noch das andere.
Geht da überhaupt?

Gruß Ronn


----------



## LastUnicorn (17. Mrz 2004)

also mir fällt da nur ein, dass du ne Serverliste brauchst. Jede Server IP in n Textfile und diese ständig mit anderen evt. Servern synchronisieren (wie bei einem grossen Filesharing Programm). Und dann können die Clients so ein Teil hernehmen, parsen und kucken ob der Server erreichbar ist


----------



## joschika77 (19. Mrz 2004)

Die IP Adresse habe ich jetzt.
Das ist aber die Netzwerk IP.(LAN)
Ich habe jetzt zu Hause dazu noch eine Internetverbindung(DSL).
Wie bekommt man die IP aus dem System ausgelesen?
Also mit dem oberen Beispiel nimmt er sich die Netzwerk IP.

MfG Ronn


----------



## lhein (19. Mrz 2004)

Wie schauts eigentlich mit Broadcasts aus ? Hat jemand mit sowas Erfahrung?
Im LAN will man ja nicht ständig den Server eintragen oder in einer Datei vorrätig haben.

Erinner mich da an z.B. PonyChat, was auch ohne Servereintrag klargekommen ist. Der erste der das Programm im Netz startet ist automatisch der Server und alle anderen die danach kommen finden den Server automatisch (über Broadcasting?).

Wie das von statten geht weiss ich allerdings nicht. Wär mal interessant zu wissen, auch wenn es nicht unbedingt hier passt.

LR


----------



## Anubis (19. Mrz 2004)

Vielen dank für den Code, Ich arbeite selber an einem Server-Basierenden Chatprogramm, und bei mir musste man die Eigene IP selber angeben. Jetzt nur noch Server-IP und Nickname


----------



## ypser (2. Mrz 2006)

//ermittle alle IPs         

Enumeration netInter = NetworkInterface.getNetworkInterfaces();
           int n = 0;
           while (netInter.hasMoreElements ())                               
           {
             NetworkInterface ni = (NetworkInterface) netInter.nextElement(); //(NetworkInterface)Typumwandlung erzwingen
             System.out.println( "NetworkInterface " + n++ + ": " + ni.getDisplayName());

             Enumeration addresses = ni.getInetAddresses();
             while (addresses.hasMoreElements())
             {
               Object o = addresses.nextElement();
               if (o.getClass() == InetAddress.class ||
                   o.getClass() == Inet4Address.class ||
                   o.getClass() == Inet6Address.class)
                   {
                     InetAddress iaddress = (InetAddress) o;

                     IP = (String)iaddress.getHostAddress();
                   }
             }
           }

                 ipAddr = IP;
                 System.out.println(ipAddr);



Bist du mit Internet verbunden, erhäst du die I-Net IP
Bist du nicht verbunden erhäst du die lokale IP


----------



## jobu0101 (3. Mrz 2006)

Mal ne generelle Frage zu einem Chatprogramm.

Wie wird das eigentlich realisiert?

Denn man sollte ja möglichst sofort die Nachricht bekommen? Wird da immer jeder zehntel Sekunde nachgefragt oder wie läuft das?


----------



## Gast (3. Mrz 2006)

Nö, der Server weiß ja, wenn eine Nachricht eingeht und verschickt sie dann an die anderen Clients.


----------



## jobu0101 (4. Mrz 2006)

Gast hat gesagt.:
			
		

> Nö, der Server weiß ja, wenn eine Nachricht eingeht und verschickt sie dann an die anderen Clients.



Wie soll denn das funktionieren? Dazu müsste der Client doch vorher nachfragen. Denn die Verbindung baut ja immer der Client auf.


----------

