Как запустить сервер Kryonet только по одному протоколу?

В настоящее время я планирую использовать сетевую библиотеку Java, Kryonet, для своей игры. Я буду использовать протокол UDP, так как он быстрее, чем TCP. Мне нравится Kryonet API, его очень чистый код, однако, похоже, он разрешает работу серверов только как по TCP, так и по UDP, тогда как мне нужен только сервер, работающий по UDP.


person liamzebedee    schedule 13.11.2011    source источник


Ответы (1)


Я не думаю, что вы должны делать предположение, что UDP «быстрее», чем TCP. TCP SACK и NACK обеспечивают более быструю повторную передачу запросов, чем старая система TCP со скользящим окном, и Явное уведомление о перегрузке значительно упрощает взаимодействие одноранговых узлов на скорости, приближающейся к максимальной, которую может выдержать сеть. (UDP будет продолжать отправлять данные, не обращая внимания на перегрузку, которая приводит к отбрасыванию пакетов.)

Проверьте пропускную способность, задержку и потерю пакетов между несколькими предполагаемыми одноранговыми узлами и посмотрите, какой из них работает лучше. Бьюсь об заклад, это выходит почти так же.

person sarnold    schedule 13.11.2011
comment
Вы говорите, что для игры в реальном времени, похожей на игру FPS, она будет работать с относительно такой же скоростью? - person liamzebedee; 13.11.2011
comment
А, и будут ли это поддерживать все клиенты, и как мне интегрировать это в Kryonet/сетевой код? - person liamzebedee; 13.11.2011
comment
Я предположил, что Kryonet поддерживает серверы, работающие как по TCP, так и по UDP, потому что их привязки к клиентам также будут работать в обеих средах. И да, FPS, работающий с обоими, должен работать примерно с одинаковой скоростью для любого типа клиентского подключения. На самом деле, поскольку каждый UDP-пакет может быть потерян или доставлен не по порядку, серверу может потребоваться включить больше избыточных данных в каждый пакет, чтобы позволить клиентам наверстать упущенное после потери некоторых пакетов. Потоку TCP не нужно будет отправлять избыточные данные, потому что клиент получит их все по порядку, хотя, возможно, повторные передачи могут время от времени добавлять 100 мс. - person sarnold; 14.11.2011