# server - client verbindung (anfänger)



## pcProfie (29. Nov 2013)

hi

ich hab ein programm geschrieben, in dem ich eigentlich ein server und einen clienten habe, die miteinander kommunizieren. eigentlich... hauptklasse war dabei java.nio nach einem tutorial zur multiplayer - programmierung. über localhost funzt das ganze auch (klasse mit server starten, dass klasse mit client starten und alles läuft). wenn ich das aber mit 2 pcs versuche läufts nicht mehr. was muss ich machen, damit dass klappt?

wie muss ich das in den 3 situationen machen:
1) 2 pcs über crossover kabel
2) mehrere pcs im selben wlan netzwerk zuhause
3) mehrere pcs in der schule über die alle an einen server angeschlossen sind?

(das sind keine hausaufgaben, ich teste es nur in der schule, weil da alle pcs gleich sind und ich so verlässliche ergebnisse bekomme, was ermittlung von kommunikations-zeiten kriege)

danke schonmal


----------



## rme (29. Nov 2013)

Wenn du IP als Protokoll zur Adressierung verwendest, unterscheiden sich die Situationen nicht. Kannst du etwas genauer beschreiben, was nicht mehr funktioniert? Kommt gar keine Verbindung mehr zustande oder kommen nur die Pakete nicht an?


----------



## pcProfie (29. Nov 2013)

keine verbindung. danach hab ichs gemacht http://www.petrastumpf.de/michael/Wissen/SpieleprogrammierungInJava.pdf  seite 23ff


----------



## rme (29. Nov 2013)

Der Code ist ziemlich gut. Was hast du denn statt "localhost" in der Main-Methode des Clients geschrieben?


----------



## pcProfie (29. Nov 2013)

erst mit localhost versucht  dann die ip des server - pcs eingegeben. dumm aber jetzt gehts über crossover!  ich habe vorhin eine andere ip eingegeben, fragt sich nur ob es in den anderen situation auch gehen wird. jetzt muss ich nur noch irgendwie gucken wo ich eine liste herkriegen kann mit den ips im netzwerk, dass er überall guckt ob der server gestartet ist und dann mit dem richtigen verbinden. wenn wie weiter unten in der pdf beschrieben die verschiedenen netzaufbaue ausprobiere, muss ich wenn der server an 1 clienten schicken soll und dieser client an der nächsten und dieser wieder an den nächsten, bei jedem clienten erst die daten kriegen (client klasse) und dann an den nächsten senden (server klasse) richtig?


----------



## rme (29. Nov 2013)

Dann müsste man IMHO die genaue Fehlermeldung sehen.. und die üblichen Sachen testen - ist der Server pingbar? Funktioniert ein verbinden mit telnet?


----------



## pcProfie (29. Nov 2013)

das einige was ich an dem quellcode nicht verstehe ist: wieso öffnet er soviele serversocketchannels? bei mir steht beim serverstart 12 mal "opening a non-blocking ServerSocketChannel on port 8000 on InetAddress ___"?


----------



## pcProfie (29. Nov 2013)

rme hat gesagt.:


> Dann müsste man IMHO die genaue Fehlermeldung sehen.. und die üblichen Sachen testen - ist der Server pingbar? Funktioniert ein verbinden mit telnet?



als fehlermeldung wars vorhin nur:

java.net.connectexception:connection refused: no further information
    at:   zeile ( while(!channel.finishConnect()) { )

mir war da nicht klar wo der fehler liegt. ich hab ma in der schule nachgefragt und die meinten was mit apache server. da ich das alles mit java lösen wollte, kam das nicht in frage


----------



## rme (29. Nov 2013)

Die vielen Channels werden geöffnet, weil du vermutlich mehrere Schnittstellen hast: LAN, WLAN, Localhost, evtl. noch was durch Programme wie Hamachi oder Firewalls.. 

Wenn das Problem irgendwas mit apache zu tun hätte, würdest du beim Starten des Servers auch eine Fehlermeldung bekommen.


----------

