Hey Leute!
Ich habe wieder ein kleines Problem…
also:
Ich arbeite gerade an einem OnlineMode für mein Spiel.
Damit das Ganze funktioniert braucht mein Programm natürlich auch Rechte bzw. sollte nicht von der Firewall blockiert werden.
Normalerweise erscheint auch dieses Fenster, wenn das Programm versucht sich mit dem Netzwerk zu verbinden:
Als ich das Spiel mit Eclipse getestet habe, habe ich so eine Meldung erhalten und alles hat prima funktioniert.
Bei meinem Bruder dagegen (er hatte direkt die Jar getestet) kam keine Firewall Meldung und er konnte sich nicht mit dem Netzwerk verbinden.
Ich habe mehrere Sachen an dem Spiel verändert und seit dem hat es bei meinem Bruder auch funktioniert.
Wenn ich nun jedoch selbst die Jar direkt ausführe öffnet sich bei MIR kein Firewall Fenster mehr.
Dh. wenn ich das Spiel mit Eclipse teste funktioniert alles, wenn ich jedoch direkt die Jar ausführe kann sich das Spiel nicht mit dem Netzwerk verbinden. Bei meinem Bruder aber geht die Jar perfekt.
Ich habe sogar eine Exe erstellt (Zu Testzwecken), welche die Jar Datei ausführt und diese bei der Firewall geaddet:
und ich habe eine Windows “Sonderregel” erstellt:
Ohne Erfolg.
Gibt es vielleicht irgendeine Möglichkeit 1. zu prüfen ob das Programm schon genug Rechte hat und 2. Dieses Firewall Fenster irgendwie automatisch zu öffnen bzw. dazu bringen geöffnet zu werden?
Danke!
Könne vllt daran liegen, dass eclipse ALLE Recht für die Jar freigibt und das Sandbox-Prinzip von Java umgeht. Wenn die Anwendung allerdings in ihrer Sandbox ist hat sie mglw. nicht genug Recht um überhaupt so eine Meldung auszulösen. Probier mal, sie mit Administratorrechten zu starten.
mfg
BH16
[QUOTE=Blackhole16]Könne vllt daran liegen, dass eclipse ALLE Recht für die Jar freigibt und das Sandbox-Prinzip von Java umgeht. Wenn die Anwendung allerdings in ihrer Sandbox ist hat sie mglw. nicht genug Recht um überhaupt so eine Meldung auszulösen. Probier mal, sie mit Administratorrechten zu starten.
mfg
BH16[/QUOTE]
Danke für die Antwort 
Habe die Jar gerade als Administrator ausgeführt aber es funktioniert immer noch nicht.
Bei meinem Bruder hat die selbe Jar eine Meldung ausgelöst aber bei mir ist nichts passiert.
Es sieht ungefähr so aus:
- Es ist immer möglich in das Netzwerk zu gehen und alle Server die dort aktiv sind zu erkennen bzw. sich mit ihnen zu verbinden
- Bei Eclipse kam diese Firewall Meldung und deshalb kann ich mit Eclipse auch einen Raum erstellen und hosten (Also einen Kryonet Server erstellen). Dieser Raum ist auch für andere Spieler im Netzwerk erkennbar
- Bei meinem Bruder kam die selbe Meldung als er die Jar geöffnet hat, er kann auch einen Raum hosten, der auch im Netzwerk sichtbar ist
- Wenn ich mit meinem Computer die Jar öffne erhalte ich keine Firewall Meldung, und ich kann zwar einen Raum hosten, aber dieser wird nicht von anderen Spielern im Netzwerk erkannt
Bei einer vorherigen Version der Jar kam bei meinem Bruder keine Meldung und er hatte das selbe Problem wie ich jetzt.
2 Varianten:
Die erste, die dir wahrscheinlich besser gefällt ist, den Port einfach per Hand bei der FW freizugeben (irgendwo unter Systemsteuerung, Sicherheit, Windows Firewall)
die 2. ist einen Webserver aufzusetzen (entweder auf einem root-server, kostet aber viel) oder du kannst einen php-server einrichten, wo jeder client n mal pro Sekunde eine Anfrage sendet.
Ich weiß leider nicht genau, warum diese Meldung bei der jar nicht kommt. Vielleicht kann dir ja jmd anderes aus dem Forum hier helfen. Aber die beiden Varianten oben wären Ausweuchvarianten.
Probier sonst auch einfach mal „normale“ Ports zu nehmen, die zwar eigentlich ein anderes Standartprotokoll haben, aber das kannst du ja einfach mal ausnutzen
(ein Port zw. 0 und 1024, wahlweise 443, 445, 80 oder 21 (windows service 2x; http; ftp))
mfg
BH16
was genau hast du denn verändert, sodass es bei deinem bruder ging / geht und bei dir auf einmal nicht mehr?
Wenn ich das richtig verstanden habe ging es vorher bei dir auch aus der jar heraus?
[QUOTE=Blackhole16]2 Varianten:
Die erste, die dir wahrscheinlich besser gefällt ist, den Port einfach per Hand bei der FW freizugeben (irgendwo unter Systemsteuerung, Sicherheit, Windows Firewall)
die 2. ist einen Webserver aufzusetzen (entweder auf einem root-server, kostet aber viel) oder du kannst einen php-server einrichten, wo jeder client n mal pro Sekunde eine Anfrage sendet.
Ich weiß leider nicht genau, warum diese Meldung bei der jar nicht kommt. Vielleicht kann dir ja jmd anderes aus dem Forum hier helfen. Aber die beiden Varianten oben wären Ausweuchvarianten.
Probier sonst auch einfach mal „normale“ Ports zu nehmen, die zwar eigentlich ein anderes Standartprotokoll haben, aber das kannst du ja einfach mal ausnutzen
(ein Port zw. 0 und 1024, wahlweise 443, 445, 80 oder 21 (windows service 2x; http; ftp))
mfg
BH16[/QUOTE]
Variante 1 teste ich auf jeden Fall mal aus 
Einen Root Server werde ich später auch mal einrichten, aber zuerst versuche ich den Netzwerk Mode fertig zu stellen (Läuft direkt über Home Netzwerk)
Das mit den Ports ist auch eine gute Idee. Werde ich testen. Ich glaube du hast soeben die Lösung gefunden! Danke 
[QUOTE=mymaksimus;72998]was genau hast du denn verändert, sodass es bei deinem bruder ging / geht und bei dir auf einmal nicht mehr?
Wenn ich das richtig verstanden habe ging es vorher bei dir auch aus der jar heraus?[/QUOTE]
Hmm… wenn ich so darüber nachdenke… einfach etwas Code… und den Port.
Daran könnte es liegen 
Ich bin mir nicht mehr zu 100% sicher aber ich glaube dass es anfangs bei mir auch direkt über die Jar funktioniert hat.
Also ich habe jetzt folgendes getestet:
- Ich habe direkt den Port bei der Windows Firewall hinzugefügt:
Nichts hat sich geändert…
- Ich habe den Port in 21 geändert
Hat auch nichts geholfen.
Kann es vielleicht sein, dass das Problem tiefer liegt?
Vielleicht zb. in Kryonet.
Theorie: Kryonet versucht eine Verbindung herzustellen, gibt dann aber vielleicht sofort auf ohne so eine Firewall Meldung zu erzwingen.
Ich könnte mal versuchen direkt ohne Kryonet eine Verbindung zu erzwingen (Nur einmal wegen den Rechten). Vielleicht wird dadurch eine Firewall Meldung hervorgerufen.