Schnelles, zuverlässiges und einfaches UDP-Messaging für Java. Entwickelt für Spiele.
JFastNet ist tolerant gegenüber Paketverlusten und kann Ihren Spielern bei richtiger Verwendung auch bei schlechten Netzwerkbedingungen ein reibungsloses Netzwerkspielerlebnis bieten.
Die API dieser Bibliothek kann sich ändern.
Die Abhängigkeit für Ihr POM:
< dependency >
< groupId >com.jfastnet</ groupId >
< artifactId >jfastnet</ artifactId >
< version >0.3.8</ version >
</ dependency >
Der folgende Code zeigt die wichtigen Teile einer Server-Client-Kommunikation:
Server server = new Server ( new Config (). setBindPort ( 15150 ));
Client client = new Client ( new Config (). setPort ( 15150 ));
server . start ();
client . start ();
client . blockingWaitUntilConnected ();
server . send ( new PrintMessage ( "Hello Client!" ));
client . send ( new PrintMessage ( "Hello Server!" ));
Klicken Sie hier, um den vollständigen Beispielcode von HelloWorld.java anzuzeigen
Die Dokumentation ist noch in Arbeit.
Die wichtigsten Klassen, nach denen man am Anfang suchen sollte, sind die Config
und die Message
Klasse. Das dortige JavaDoc sollte Ihnen die grundsätzlichen Konfigurationsmöglichkeiten der Bibliothek vermitteln.
Derzeit gibt es zwei Möglichkeiten, eine Nachricht zuverlässig zu versenden. Es ist natürlich auch möglich, die Nachricht unzuverlässig zu versenden.
Der Empfänger einer Nachricht, bei der der zuverlässige Modus auf ACK_PACKET
eingestellt ist, sendet beim Empfang der Nachricht ein Bestätigungspaket an die andere Seite. Solange der Absender der zuvor genannten Nachricht kein Bestätigungspaket erhält, wird er die Nachricht erneut senden.
Attribut | Wert |
---|---|
Zuverlässig | Ja |
Bestellt | NEIN |
Der Empfänger einer Nachricht, deren zuverlässiger Modus auf SEQUENCE_NUMBER
eingestellt ist, unternimmt nichts, solange die Nachrichten in der erwarteten Reihenfolge eintreffen. Wenn jedoch eine Nachricht mit einer größeren ID als erwartet empfangen wird, stoppt der Empfänger die Verarbeitung der Nachrichten und sendet eine RequestSeqIdsMessage
an das andere Ende. Die Verarbeitung wird erst fortgesetzt, wenn alle erforderlichen Nachrichten empfangen wurden.
Attribut | Wert |
---|---|
Zuverlässig | Ja |
Bestellt | Ja |
In der Regel empfiehlt es sich, Sequenznummern zu verwenden, da der Overhead geringer ist und die bestellte Lieferung gewährleistet ist.
Verwenden Sie Maven, um JFastNet zu erstellen:
mvn clean install
Kryo ist der in JFastNet verwendete Standard-Serialisierer und es macht Spaß, damit zu arbeiten! Vielen Dank für diese tolle Bibliothek!
Erwähnenswert ist auch Project Lombok, da es die Arbeit mit Java wesentlich komfortabler macht und der Code sauberer aussieht. Probieren Sie es aus, falls Sie es noch nicht getan haben.
Veröffentlichen Sie Probleme auf der Problemseite oder kontaktieren Sie mich per E-Mail unter [email protected] für andere Anfragen.