Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Библиотеки

Ответ
 
Опции темы
Старый 05.09.2012, 14:52   #16
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

В данной версии нет, но в принципе возможно. Если актуально - может найду время дописать.
(Offline)
 
Ответить с цитированием
Старый 05.09.2012, 16:15   #17
Gonzo
Оператор ЭВМ
 
Аватар для Gonzo
 
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

Очень актуально )
Думаю, за это буду признателен не только я.
Библиотека хорошо себя зарекомендовала в работе, но поддержки нескольких соединений не хватает.
(Offline)
 
Ответить с цитированием
Старый 13.09.2012, 22:03   #18
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

Собрал тестовый вариант библиотеки для работы с несколькими соединениями, чисто для проверки концепции. Работа отличается только тем, что перед началом работы с функциями библиотеки нужно вызвать метод binsock3.init(int cnt);, где cnt - требуемое количество подключений. Также, каждая функция работы с соединением (т.е. все функции, кроме отладочных) имеет еще один (последний) параметр (кроме указанных в документации), который определяет индекс подключения, к которому идет обращение.

Библиотеку пока не протестировал, поскольку не на чем, а на эмуляторе не работает (это не глюк библиотеки, поскольку старая версия также не работает, видимо, система не дает эмулятору доступ в сеть).

И есть еще один момент - возможно, операции с разными соединениями придется разносить в разные потоки, хотя может и так будет работать.
Вложения
Тип файла: zip Lib_binsock3.zip (2.3 Кб, 106 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Gonzo (05.11.2013)
Старый 14.09.2012, 09:02   #19
Gonzo
Оператор ЭВМ
 
Аватар для Gonzo
 
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

Отличная новость )
Протестирую и отпишусь.
Кстати предыдущая версия библиотеки у меня работает на эмуляторе SJBoy.
Только нужно добавить в исключения файрволлу.
(Offline)
 
Ответить с цитированием
Старый 01.11.2013, 09:17   #20
Gonzo
Оператор ЭВМ
 
Аватар для Gonzo
 
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

ViNT, в описании указано, что read_bin возвращает массив байт из входящего потока или null в случае ошибки.
В MP константы null не зарезервировано.
Как интерпретировать это значение? - как пустую строку?
__________________
На западном фронте без перемен...
(Offline)
 
Ответить с цитированием
Старый 01.11.2013, 09:19   #21
Gonzo
Оператор ЭВМ
 
Аватар для Gonzo
 
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

P.S. Забыл тогда отписаться про либу с несколькими подключениями - при тесте проблем не возникало.
__________________
На западном фронте без перемен...
(Offline)
 
Ответить с цитированием
Старый 05.11.2013, 19:07   #22
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

Сообщение от Gonzo Посмотреть сообщение
ViNT, в описании указано, что read_bin возвращает массив байт из входящего потока или null в случае ошибки.
В MP константы null не зарезервировано.
Как интерпретировать это значение? - как пустую строку?
Когда писал библиотеку, как-то подзабыл, что в MP нет null'a. Надо подумать, как это лучше реализовать.
(Offline)
 
Ответить с цитированием
Старый 05.11.2013, 19:45   #23
Gonzo
Оператор ЭВМ
 
Аватар для Gonzo
 
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

Я пока использую такую обертку:
function ReadData(DataLength: Integer): String;
//прием строки
var 
	l: Integer;
	s, tmp: String;
begin
  l := DataLength;
  s := '';
  while l > 0 do
  begin
		tmp := binsock.read_bin(l);
		if tmp = '' then
		begin
			s := 'ERROR';
			Break;
		end;
		s := s + tmp;
		l := binsock.available;
		if l = -1 then
		begin
			s := 'ERROR';
			Break;
		end;
  end;
  ReadData := s;
end;
Но я никогда и не вызываю чтение данных с DataLength = 0.
Может так и сделать? - в случае ошибки возвращать пустую строку и ввести запрет на вызов чтения данных нулевой длины?
__________________
На западном фронте без перемен...
(Offline)
 
Ответить с цитированием
Старый 05.11.2013, 19:49   #24
Gonzo
Оператор ЭВМ
 
Аватар для Gonzo
 
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

Прицепляю библиотеку, которую использую
Вложения
Тип файла: rar Lib_binsock.rar (2.0 Кб, 56 просмотров)
__________________
На западном фронте без перемен...
(Offline)
 
Ответить с цитированием
Старый 05.11.2013, 20:37   #25
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

В принципе, если вариант с возвращением пустой строки устраивает - выкладываю пересобранную версию. Отличается только тем, что из read_bin возвращает пустую строку вместо null. Хотя, надо будет подумать над более удобным решением.
Вложения
Тип файла: zip Lib_binsock.zip (2.1 Кб, 54 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Gonzo (05.11.2013)
Старый 05.11.2013, 21:29   #26
Gonzo
Оператор ЭВМ
 
Аватар для Gonzo
 
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

Вполне устраивает. Спасибо
__________________
На западном фронте без перемен...
(Offline)
 
Ответить с цитированием
Старый 10.11.2013, 16:15   #27
Gonzo
Оператор ЭВМ
 
Аватар для Gonzo
 
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

ViNT, важный вопрос:
должны ли функции binsock.available и binsock.read_bin возвращать ошибки и выбрасывать эксепшны, если соединение было потеряно ранее (закрыто сервером или пропала сеть)?
__________________
На западном фронте без перемен...
(Offline)
 
Ответить с цитированием
Старый 10.11.2013, 19:36   #28
Gonzo
Оператор ЭВМ
 
Аватар для Gonzo
 
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

Декомпилировал класс. Насколько я могу судить, в binsock.available, если соединение ранее пропало (и соотв. inpustream уже нет), т.е. is == null, то функция будет возвращать 0, будто все норм:
public static int available() {
    if (
is != null) {
      try {
        return 
is.available();
      } catch (
Exception e) {
        
err(e2"");
        return -
1;
      }
    }
    return 
0;
  } 
Поправьте, пожалуйста.
---
Я до этого с Java совсем не работал - не подскажите как компиллить классы для j2me? какие пакеты нужны и т.д.
Главным образом интересуют зависимости для данной библиотеки.
__________________
На западном фронте без перемен...
(Offline)
 
Ответить с цитированием
Старый 10.11.2013, 19:47   #29
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

В этом случае is не будет равен null (он будет по прежнему указывать на объект потока, наличие которого не зависит от состояния соединения), а будет сгенерирован IOException, который будет интерпретирован блоком try...catch как ERR_AVAILERROR.

Библиотеки компилить проще всего в NetBeans, единственный момент - в новых версиях у них там какая-то проблема с подключением J2ME, я решал ручным указанием пути к J2ME WTK (хотя обычно он не нужен). Можно компилить в самом WTK, но это неудобно. Конкретно эта библиотека использует только стандартные пакеты J2ME.
(Offline)
 
Ответить с цитированием
Старый 10.11.2013, 20:18   #30
Gonzo
Оператор ЭВМ
 
Аватар для Gonzo
 
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет

А в каких случаях 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\
JDK17~1.0_0\bin\javac.exe C:\PROGRA~1\Java\jdk1.7.0_09\bin\Java_ME_platform_SDK_
3.4\lib\Lib_binsock.java
C:\PROGRA~1\Java\jdk1.7.0_09\bin\Java_ME_platform_SDK_3.4\lib\Lib_binsock.java:3
: error: package javax.microedition.io does not exist
import javax.microedition.io.*;
^
C:\PROGRA~1\Java\jdk1.7.0_09\bin\Java_ME_platform_SDK_3.4\lib\Lib_binsock.java:7
: error: cannot find symbol
  private static SocketConnection con;
                 ^
  symbol:   class SocketConnection
  location: class Lib_binsock
C:\PROGRA~1\Java\jdk1.7.0_09\bin\Java_ME_platform_SDK_3.4\lib\Lib_binsock.java:3
1: error: cannot find symbol
                M.onerror(sender, ex.toString(), msg, code);
                ^
  symbol:   variable M
  location: class Lib_binsock
C:\PROGRA~1\Java\jdk1.7.0_09\bin\Java_ME_platform_SDK_3.4\lib\Lib_binsock.java:4
6: error: cannot find symbol
            con = (SocketConnection)Connector.open(url);
                   ^
  symbol:   class SocketConnection
  location: class Lib_binsock
C:\PROGRA~1\Java\jdk1.7.0_09\bin\Java_ME_platform_SDK_3.4\lib\Lib_binsock.java:4
6: error: cannot find symbol
            con = (SocketConnection)Connector.open(url);
                                    ^
  symbol:   variable Connector
  location: class Lib_binsock
5 errors
----
Не могли бы Вы сейчас скомпилировать этот файл (прикладываю в архиве)? хотелось бы кое-что проверить - какая-то проблема последнее время странная. И дело то ли на сервере, то ли на клиенте - непонятно.
----
A с компиляцией уже завтра тогда буду разбираться на свежую голову )
Вложения
Тип файла: rar Lib_binsock_.rar (1.1 Кб, 61 просмотров)
__________________
На западном фронте без перемен...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача данных через GPRS Mirik1 MidletPascal 22 01.02.2010 18:17
Загрузка бинарных данных через сокеты Skythrone Прочие вопросы 3 20.08.2009 15:13
прием e-mail pop3 (sources) abcdef Основной форум 2 02.05.2009 15:42
Прогу для чтения бинарных файлов! ELIAS Blitz3D 9 15.03.2009 16:09
проблемма сокет соединения Aluk Основной форум 1 29.09.2007 16:27


Часовой пояс GMT +1, время: 20:57.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com