Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
В данной версии нет, но в принципе возможно. Если актуально - может найду время дописать.
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Очень актуально )
Думаю, за это буду признателен не только я. Библиотека хорошо себя зарекомендовала в работе, но поддержки нескольких соединений не хватает. |
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Вложений: 1
Собрал тестовый вариант библиотеки для работы с несколькими соединениями, чисто для проверки концепции. Работа отличается только тем, что перед началом работы с функциями библиотеки нужно вызвать метод binsock3.init(int cnt);, где cnt - требуемое количество подключений. Также, каждая функция работы с соединением (т.е. все функции, кроме отладочных) имеет еще один (последний) параметр (кроме указанных в документации), который определяет индекс подключения, к которому идет обращение.
Библиотеку пока не протестировал, поскольку не на чем, а на эмуляторе не работает (это не глюк библиотеки, поскольку старая версия также не работает, видимо, система не дает эмулятору доступ в сеть). И есть еще один момент - возможно, операции с разными соединениями придется разносить в разные потоки, хотя может и так будет работать. |
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Отличная новость )
Протестирую и отпишусь. Кстати предыдущая версия библиотеки у меня работает на эмуляторе SJBoy. Только нужно добавить в исключения файрволлу. |
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
ViNT, в описании указано, что read_bin возвращает массив байт из входящего потока или null в случае ошибки.
В MP константы null не зарезервировано. Как интерпретировать это значение? - как пустую строку? |
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
P.S. Забыл тогда отписаться про либу с несколькими подключениями - при тесте проблем не возникало.
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Цитата:
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Я пока использую такую обертку:
Код:
function ReadData(DataLength: Integer): String; Может так и сделать? - в случае ошибки возвращать пустую строку и ввести запрет на вызов чтения данных нулевой длины? |
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Вложений: 1
Прицепляю библиотеку, которую использую
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Вложений: 1
В принципе, если вариант с возвращением пустой строки устраивает - выкладываю пересобранную версию. Отличается только тем, что из read_bin возвращает пустую строку вместо null. Хотя, надо будет подумать над более удобным решением.
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Вполне устраивает. Спасибо
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
ViNT, важный вопрос:
должны ли функции binsock.available и binsock.read_bin возвращать ошибки и выбрасывать эксепшны, если соединение было потеряно ранее (закрыто сервером или пропала сеть)? |
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Декомпилировал класс. Насколько я могу судить, в binsock.available, если соединение ранее пропало (и соотв. inpustream уже нет), т.е. is == null, то функция будет возвращать 0, будто все норм:
PHP код:
--- Я до этого с Java совсем не работал - не подскажите как компиллить классы для j2me? какие пакеты нужны и т.д. Главным образом интересуют зависимости для данной библиотеки. |
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
В этом случае is не будет равен null (он будет по прежнему указывать на объект потока, наличие которого не зависит от состояния соединения), а будет сгенерирован IOException, который будет интерпретирован блоком try...catch как ERR_AVAILERROR.
Библиотеки компилить проще всего в NetBeans, единственный момент - в новых версиях у них там какая-то проблема с подключением J2ME, я решал ручным указанием пути к J2ME WTK (хотя обычно он не нужен). Можно компилить в самом WTK, но это неудобно. Конкретно эта библиотека использует только стандартные пакеты J2ME. |
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Вложений: 1
А в каких случаях is станет null ? для чего эта проверка?
--------------- Нет нетбинса, но есть еклипс. Попробовал скачать eclipse-me-sdk-plugins-uc.zip отсюда http://www.oracle.com/technetwork/ja...sdk/index.html но не встает. --- пробую так же через консоль: Код:
C:\Program Files\Java\jdk1.7.0_09\bin\Java_ME_platform_SDK_3.4>C:\PROGRA~1\Java\ Не могли бы Вы сейчас скомпилировать этот файл (прикладываю в архиве)? хотелось бы кое-что проверить - какая-то проблема последнее время странная. И дело то ли на сервере, то ли на клиенте - непонятно. ---- A с компиляцией уже завтра тогда буду разбираться на свежую голову ) |
Часовой пояс GMT +4, время: 11:54. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot