Быстрый, надежный и простой обмен сообщениями UDP для Java. Предназначен для игр.
JFastNet устойчив к потере пакетов и при правильном использовании может обеспечить вашим игрокам бесперебойную сетевую игру даже в плохих сетевых условиях.
API этой библиотеки может быть изменен.
Зависимость для вашего POM:
< dependency >
< groupId >com.jfastnet</ groupId >
< artifactId >jfastnet</ artifactId >
< version >0.3.8</ version >
</ dependency >
Следующий код показывает важные части связи сервер-клиент:
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!" ));
Нажмите, чтобы увидеть полный пример кода HelloWorld.java.
Документация все еще находится в стадии разработки.
Наиболее важные классы, на которые следует обратить внимание вначале, — это класс Config
и Message
. JavaDoc должен предоставить вам основные возможности настройки библиотеки.
В настоящее время существует два способа надежной отправки сообщения. Ненадежная отправка сообщения, конечно, также является вариантом.
Получатель сообщения с режимом надежности, установленным на ACK_PACKET
отправит пакет подтверждения на другой конец после получения сообщения. Пока отправитель вышеупомянутого сообщения не получит пакет подтверждения, он будет продолжать отправлять сообщение повторно.
Атрибут | Ценить |
---|---|
Надежный | да |
Заказал | нет |
Получатель сообщения с режимом надежности, установленным на SEQUENCE_NUMBER
не будет ничего делать, пока сообщения поступают в ожидаемом порядке. Но если получено сообщение с идентификатором, превышающим ожидаемый, получатель прекратит обработку сообщений и отправит RequestSeqIdsMessage
на другой конец. Обработка не продолжится, пока не будут получены все необходимые сообщения.
Атрибут | Ценить |
---|---|
Надежный | да |
Заказал | да |
Обычно рекомендуется использовать порядковые номера, так как это будет меньше накладных расходов, а также гарантируется заказанная доставка.
Используйте maven для сборки JFastNet:
mvn clean install
Kryo — это сериализатор по умолчанию, используемый в JFastNet, и работать с ним одно удовольствие! Большое спасибо за эту замечательную библиотеку!
Проект Lombok также заслуживает упоминания, так как он делает работу с Java намного комфортнее, а код выглядит чище. Проверьте это, если вы еще этого не сделали.
Публикуйте проблемы на странице проблем или свяжитесь со мной по электронной почте [email protected], если у вас возникнут другие вопросы.