![]() |
Глюк с сокетами
Написал сервер на C++ и клиент на as3, общающиеся по сокетам. Добавил туда пинги. Заметил, что задержка всегда кратна 10 (30, 40, 50 мс). В чем тут дело?
Вообще, где может крыться задержка при работе с сокетами в as3? Совершенно случайно наткнулся на метод flush, который необходимо использовать при записи. То есть метод, конечно, лежит на поверхности, но нигде почему-то (кроме описания самого метода, что довольно глупо) не сказано "обязательно используйте его!". Нет ли подобных подводных камней при чтении из сокета? Другими словами: как обеспечить максимальное быстродействие при работе с сокетами в as? Добавлено через 3 часа 25 минут Заметил, что пакеты, которые должны приходить с разницей где-то в 100 мс, приходят разом (то есть считываются из сокета за одно срабатывание события SOCKET_DATA), причем с большой задержкой. Тут проблема в сервере или событие вызывается с опозданием? |
Цитата:
Цитата:
|
Ок, а что тогда понимается под словом "пакеты"? Или это понятие исключительно для низкоуровневых интерфейсов?
|
В моём понимании пакет - это порция данных с логическим концом. Например, сообщение в чат. Порция данных, которая полностью охватывает это сообщение. Порции данных же может как не хватить для пакета, так и быть с избытком.
(пойду погуглю что-ли, прав ли я) Wiki: Цитата:
|
Порции данных надо принудительно проталкивать из буфера на сервере. Сам он этого не сделает до определенного момента, например пока буфер не заполнится.
Пакет - это порция данных на уровне протокола (причем пакет не обязательно содержит часть запрашиваемых или отсылаемых пользователем данных). Порция данных с логическим концом - это порция данных с логическим концом (request/response) |
Ну, выходит, я употребил слово верно.
Что касается отправки - мы так и не нашли, как проталкивать данные на сервере. Пришлось решать эту проблему через жопу - установкой маленькой длины буфера, чтоб они чаще отправлялись. |
Цитата:
Добавлено через 1 час 39 минут Цитата:
Цитата:
Цитата:
|
| Часовой пояс GMT +4, время: 23:58. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.