![]() |
|
Модераторы: marykone |
![]()
|
|
| KaraKum |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 640 Регистрация: 3.12.2007 Репутация: нет Всего: 1 |
Добрый день.
Клиент подключается к серверу функциями библиотеки ENet. На клианте в консоли можно писать сообщения, которые будут передаваться серверу. Всё работает как надо, но только первые примерно 30 секунд - далее на сервере происходит DISCONNECT (выводится сообщение "Client information disconected." (см. код)) и больше сообщения от клиента не приходят. Однако на клиенте ничего не происходит - он "думает" что продолжает успешно отправлять сообщения. В чём может быть дело? Код сервера:
Код клиента:
|
||||
|
|||||
| KaraKum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 640 Регистрация: 3.12.2007 Репутация: нет Всего: 1 |
Помогли решить вопрос на "ENet Mailing List".
Рассказываю для тех кто найдёт ветку в поисковике или ещё как-то: Для того чтобы соединение не разрывалось необходимо постоянно на клиенте вызывать функцию "enet_host_service()". Третий параметр этой функции - толком не понятое время - в доках написано что это время, которое функция ждёт прежде чем вернуть "сообщений нет", однако, по уверениям документалистов, функция прерывается при появлении какого-либо события, но если, например, указать третий параметр как 1000 миллисекунд (как показано в примере руководства), то исходящие сообщения, в среднем, будут отправляться с задержкой в 500 миллисекунд ((0 + 1000) / 2). В моём примере основной поток занят функцией getchar(), поэтому я вызываю "enet_host_service()" в параллельном потоке:
Указал 5 миллисекунд, соответственно в среднем при отправке (не считая время прохождения пакета по кабелям и маршрутизаторам) имеется задержка в 2.5 миллисекунды. Если указать 0, то этот поток сожрёт 100% мощности процессора. Это сообщение отредактировал(а) KaraKum - 5.11.2010, 19:42 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Сетевые технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |