| 

.NET C# Java Javascript Exception

0
Für ein Online-Spiel suche ich ein Netzwerk-Framework (UDP-basiert), das ich in Java und Erlang benutzen kann. Ein in Java geschriebenes Framework kommt meiner Meinung nach nicht in Frage, weil der Server komplett in Erlang laufen soll und die JVM dann entsprechend Overhead erzeugen würde. (Der Client ist in Java programmiert.)

Das Framework sollte folgendes bieten:
  • einen verbindungsorientierten Zugriff ermöglichen,
  • verlorengegangene Pakete erneut senden,
  • die Sendegeschwindigkeit an die Engpässe des Netzwerkes anpassen,
  • und soweit wie möglich platformenunabhängig (vor allem beim Java-Client).


Es müsste dann ja irgendetwas zwischen TCP und UDP sein.
23.05.2010
clonejo 144 2 6
clonejo 144 2 6
1 Antwort
0
Also was ich da so raus lese ist kein UDP, sondern ein TCP Protokoll. UDP ist verbindungslos und sendet verloren gegangene Daten nicht erneut (was bei manchen Spielen natürlich auch von Vorteil ist, da diese sonst nicht flüssig laufen würden).

Die Sendegeschwindigkeit wird automatisch bei einem TCP Protokoll angepasst, da der Server durch die Sequenzierung mitbekommt, ob ein Paket angekommen ist oder nicht. Falls nicht wird es erneut gesendet. Hierbei wird, falls nicht anders konfiguriert, die maximal mögliche Geschwindigkeit zwischen Server und Client genutzt.

Da ich leider nicht sehr bewandert in Erlang bin und nicht genau weiß, was dein Online-Spiel können muss, kann ich dir hier keine allgemeingültige Antwort geben. Ich würde, je nach Spiel, einen TCP-Server mit Erlang bauen. Über einen Socket kannst du dich dann mit dem Java-Client verbinden und entsprechende Funktionen aufrufen oder Daten senden. Dies würde dann in beiden Sprachen ohne Probleme umsetzbar sein.

Erlang TCP Server

Um deinen Client zu bauen, würde ich dir Apache MINA vorschlagen. Dieses Framework kann auch ohne größere Umstände mit einem einfachen TCP Server kommunizieren. Für Erlang kenne ich leider kein Network Framework.
27.05.2010
Dustin Klein 2,9k 2 9

Stelle deine Java-Frage jetzt!