Клиент Enet автоматически отключается после времени выпуска - PullRequest
3 голосов
/ 11 января 2011

Итак, я начал использовать Enet, и мне действительно это нравится, но я проводил некоторое тестирование отправки информации от клиента на сервер (60 раз в секунду), и сервер успешно получал эти пакеты (60 раз в секунду) и всешло хорошо, пока случайно сервер не перестал получать пакеты.

После дальнейшего тестирования я обнаружил, что клиент отправляет пакет разъединения, я не уверен, почему.Если у кого-нибудь есть знания об Enet, которые могут мне помочь, это будет с благодарностью.В настоящее время я могу думать только о том, что время ожидания клиента истекло.

Хорошо, поэтому 4:30 утра - это объяснение этой проблемы.С моим последним пробужденным брейнселем я заметил строку кода с аргументом 5000 мс, потому что я вызываю свой код 60 раз каждую минуту, а время истекло примерно через 30 секунд или около того, потому что у меня была строка кодав неправильном месте ... Извлеченный урок, не публиковать вопросы о stackoverflow после полуночи ...

  • Я не уверен, как удалять сообщения, это было бесполезно

1 Ответ

2 голосов
/ 13 августа 2014

Я тоже недавно столкнулся с этой проблемой, и решение состоит в том, что обоим хостам (клиенту и серверу) необходимо регулярно вызывать enet_host_service, в противном случае время ожидания на другом конце будет таким, как если бы было отключено соединение.* Это потому, что некоторый пример клиент-серверного кода, плавающего вокруг, не беспокоит вызов enet_host_service в клиенте.

enet_host_service делает небольшую уборку, следя, чтобы обе стороныизвестно, что другой конец жив и т. д.

...