Открыть главное меню

SynSock (эльф): различия между версиями

(Описание работы)
Строка 14:Строка 14:
 
#:сетевой (PROTOCOL_IP)
 
#:сетевой (PROTOCOL_IP)
 
#:транспортный (PROTOCOL_TCP/PROTOCOL_UDP)
 
#:транспортный (PROTOCOL_TCP/PROTOCOL_UDP)
Запоминаем ID команды, ждём [[event|ивент]] EV_DSMA_PROXY_ATTR.
+
#Запоминаем ID команды, ждём [[event|ивент]] EV_DSMA_PROXY_ATTR.
 
#В [[event|ивенте]] EV_DSMA_PROXY_CREATE проверяем ID команды и результат. Ждём [[event|ивент]] EV_DSMA_PROXY_STATE.
 
#В [[event|ивенте]] EV_DSMA_PROXY_CREATE проверяем ID команды и результат. Ждём [[event|ивент]] EV_DSMA_PROXY_STATE.
 
#В [[event|ивенте]] EV_DSMA_PROXY_STATE проверяем номер прокси и результат. RESULT_OK если установлено подключение, можно передавать данные.
 
#В [[event|ивенте]] EV_DSMA_PROXY_STATE проверяем номер прокси и результат. RESULT_OK если установлено подключение, можно передавать данные.

Версия 20:52, 16 февраля 2010

SynSock - менеджер сокетов для телефонов с P2K.

Применение

SynSock предоставляет API для управления сокетами из эльфов, может быть создано до восьми сокетов. Для использования необходим запущенный эльф SynSock.

Описание работы

ПО моторолы не имеет классического интерфейса сокетов, вместо него используется "свой" интерфейс DSMA (англ. Data Send Manager), в котором подключения называются proxy. Алгоритм работы с proxy:

  1. Создаём прокси, запоминаем ID команды на создание прокси, ждём ивент EV_DSMA_PROXY_CREATE.
  2. В ивенте EV_DSMA_PROXY_CREATE проверяем ID команды и результат.
  3. Конфигурируем прокси, настраивается локальный и удаленный порты, удаленный хост (можно по имени, ОС сама определит IP через DNS), имя пользователя, пароль. Настраиваем протоколы:
    физический (USE_GPRS)
    канальный (0)
    сетевой (PROTOCOL_IP)
    транспортный (PROTOCOL_TCP/PROTOCOL_UDP)
  4. Запоминаем ID команды, ждём ивент EV_DSMA_PROXY_ATTR.
  5. В ивенте EV_DSMA_PROXY_CREATE проверяем ID команды и результат. Ждём ивент EV_DSMA_PROXY_STATE.
  6. В ивенте EV_DSMA_PROXY_STATE проверяем номер прокси и результат. RESULT_OK если установлено подключение, можно передавать данные.
  7. Ивент EV_DSMA_BUFF_STATE уведомляет о входящих данных в прокси или об занятости буфера.

SynSock читает параметры подключения из веб-сесии "по умолчанию" и берет на себя работу с DSMA, предоставляя приложению API, похожее на работу с сокетами. Адреса функций synsock_api не известны, поэтому приложение клиент должно хранить глобальную таблицу адресов этих функций и запрашивать один раз при старте через ивент SOCKET_MGR_MAIN_REGISTER.

Аналоги

  • В Java-машине есть аналог SynSock предоставляющий функции сокетов для ява приложений. В основе SynSock лежит изучение его работы.
  • Статическая либа socket.o для ElfPack2. Предоставляет функции чтения default веб-сессии и работы с одним сокетом. Работает не через ивенты, а через коллбэки. Приложению, использующему эту либу, не требуется SynSock для работы с интернетом.

См. также

Категория:Synsock_api

Ссылки на другие ресурсы