Важная информация
RSS лента

asve79

Очередной чекпоинт. Zifi-либа и сетевой сервер для тестирования.

Оценить эту запись
В коим-то веке в выходной образовалась свободная минутка, и я решил провести ее с пользой написав небольшой пост. Тем более что предыдущую неделю я не постил ничего ввиду не таких уж и больших продвижений и желанием потратить время на создание комфортной для работы инфраструктуры.
Сразу скажу что zifi библиотека пишется. Основные функции написаны. Самая не простая функция это функция приема данных при условии что модуль работает в режиме мултисоединений. Буду ее отлаживать.
Казалось бы простая с виду задача обросла целым модулем, который умеет жить своей жизнью. ) Хочу чтобы был "черный ящик" которому мы говорим "открой соединение", "отправь данные", получаем "чистые" данные - вызывается обратным вызовом ф-ция обработки в зависимости от номера соединения своя ф-ция и свой буфер.
Пока делал появилась мысль добавить поддержку обратных вызовов, чтобы вызывать функции при приходе данных в буфер или переполнения буфера или обрыва соединения. Доработки минимум, вопрос утяжеления и целесообразности.
Также необходимо решить ряд технических моментов, например обработку ситуации когда данные пришли в буфер, а команда идентификатор IPD попала на границу приемного буфера.

А еще, для отладки/тестирования работы с мультисоединениями и обработки ситуации с переполнением буфера, написал маленький сервер, который принимает соединения и генерит в него данные любой длины, как задашь. Проект и описание тут: https://github.com/asve79/tcp-server-zifilibtest

В целом, по ощущениям, zifi не самое быстрое средство приема/отправки данных. Как я уже говорил для пошаговых игр норм а вот для он-лайн игр вопрос открыт. Гораздо приятней выглядит скорость работы через карточку zx-netysb на демке от алон-кодера. Там как-то в момент все открываться. Но пока это рассуждения. Будем тестироваться, посмотрим.

Хотел вот после zifi-либы переключиться на развитие cli2, о котором писал ранее, положив на полку планы по написанию game-сервера, но написав небольшой тестовый сервер подумал не вернуться ли к первоначальным планам. ) Пока не буду делать никаких выводом, там на месте посмотрим.

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

PS. Пока писал пост, подумал что в сервере не лишним будет ф-ция имитации обрыва соединения в любое время. )
Метки: test server, zifi Добавить / редактировать метки
Категории
Без категории

Комментарии

  1. Аватар для !dx
    чтобы был "черный ящик" которому мы говорим "открой соединение", "отправь данные", получаем "чистые" данные - вызывается обратным вызовом ф-ция обработки в зависимости от номера соединения своя ф-ция и свой буфер.
    Пока делал появилась мысль добавить поддержку обратных вызовов, чтобы вызывать функции при приходе данных в буфер или переполнения буфера или обрыва соединения. Доработки минимум, вопрос утяжеления и целесообразности.
    Все целесообразно. Класс ! )


    Наверное, что вообще, в идеале( ), когда к либе можно будет подключить любой "внешний драйвер" любого сетевого устройства ) эдакий Cli2ux то есть не должно быть сложностей если в качестве "приемопередатчика" будь то zifi или 28j60, wiznet5x00, zx-usbnet и тд. )
    Обновлено 11.05.2019 в 10:27 !dx
  2. Аватар для asve79
    Цитата Сообщение от !dx
    Наверное, что вообще, в идеале( ), когда к либе можно будет подключить любой "внешний драйвер" любого сетевого устройства ) эдакий Cli2ux то есть не должно быть сложностей если в качестве "приемопередатчика" будь то zifi или 28j60, wiznet5x00, zx-usbnet и тд. )
    В идеале да. Сейчас либа именно зифишная и под ней можно менять только либу работы с портом. А так да.. В идеале разделить работу с устройством/данными сделав еще третий уровень абстракции по работе с данными. Но... Посмотрим как будет... Сразу ж космолет никому ненужен. Да и вопрос как сейчас перфоманс будет...

    Будем развиваться исходя из потребностей.

Трекбэков