|
11.11.2013, 00:34
|
#31
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Видимо нужно прописать классы J2ME в classpath, может еще какие-то ключи указать, точно не помню - уже очень давно не компилил через консоль.
null может быть в том случае, если соединение не было открыто (не вызывался метод open()), либо было закрыто (вызван метод close()). На самом деле да, подход не совсем верный - в таком случае стоило бы тоже выкидывать ошибку типа "соединение закрыто", но я по каким-то причинам этого делать не стал, возложив, фактически, контроль состояния библиотеки на программиста(фактически, есть только защита от ошибки, но вот отладку это только усложняет).
|
(Offline)
|
|
11.11.2013, 00:43
|
#32
|
Оператор ЭВМ
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Спасибо. Сейчас буду пробовать - если что - отпишусь в теме
__________________
На западном фронте без перемен...
|
(Offline)
|
|
11.11.2013, 15:10
|
#33
|
Оператор ЭВМ
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
В общем поставил NetBeans 7.3, установил JDK (jdk-7u45-windows-i586.exe), установил J2ME SDK (oracle-jmesdk-3-4-rr-win32-bin.exe), плагины для IDE (oracle-jmesdk-3-4-rr-nb-plugins.zip). Все компиллится, все зависимости видит, но class потом не работает ( - программа сразу завершается при любом обращении к классу.
Так же непонятен способ подключения "M" - создал класс в пакете, добавил метод - так нужно?
Мне нужно расширить open параметрами KeepAlive и Delay:
public static int open(String url, int Nagle, int KeepAlive){
try {
con = (SocketConnection)Connector.open(url);
con.setSocketOption(SocketConnection.DELAY, Nagle);
con.setSocketOption(SocketConnection.KEEPALIVE, KeepAlive);
is = con.openInputStream();
os = con.openOutputStream();
return 1;
} catch (Exception e) {
LastError = e.getMessage();
err(e, ERR_OPENERROR, "Unable to open connection or data stream");
close();
return -1;
}
}
DELAY- Socket option for the small buffer writing delay (0). Set to zero to disable Nagle algorithm for small buffer operations. Set to a non-zero value to enable.
|
KEEPALIVE - Socket option for the keep alive feature (2). Setting KEEPALIVE to zero will disable the feature. Setting KEEPALIVE to a non-zero value will enable the feature.
|
ViNT, не скомпиллишь еще разок, пока я не разобрался? )
И подскажи, что делать с классом M ? Как вообще называется подобный механизм?
__________________
На западном фронте без перемен...
|
(Offline)
|
|
11.11.2013, 15:15
|
#34
|
Оператор ЭВМ
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Кстати, кто будет разбираться - ссылка по теме
__________________
На западном фронте без перемен...
|
(Offline)
|
|
11.11.2013, 23:03
|
#35
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Класс M.class это стандартный класс MP, через него можно обращаться к функциям ввода-вывода. Чтобы работать с ним, нужно поместить его исходник в пакет по умолчанию проекта (там же должны находиться и библиотеки).
Дальше в нем можно определять нужные методы (вернее их "заглушки", поскольку сам скомпиленный класс использоваться не будет). Вариант класса, с которым компилится эта библиотека лежит в архиве.
Класс может не работать, если его не оттуда взять. Брать готовый класс нужно из build/preverified, тогда должен работать.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.11.2013, 17:20
|
#36
|
Оператор ЭВМ
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
ViNt, спасибо. Действительно - взял класс из папки preverified и все заработало.
__________________
На западном фронте без перемен...
|
(Offline)
|
|
12.11.2013, 17:28
|
#37
|
Оператор ЭВМ
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Кто будет использовать параметр KeepAlive - обратите внимание, что его нужно ставить не единицу, а именно значение в секундах через, которое требуется проверять соединение. Это насколько я могу судить по сниферу.
Вот пример подобного использования (правда к комментах):
http://jimm-fork.googlecode.com/svn/...TcpSocket.java
Если я не прав - поправьте меня.
__________________
На западном фронте без перемен...
|
(Offline)
|
|
15.11.2013, 19:02
|
#38
|
Оператор ЭВМ
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Как HTTPConnection преобразует URL в IP ?
Как это можно посмотреть?
__________________
На западном фронте без перемен...
|
(Offline)
|
|
15.11.2013, 23:56
|
#39
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Сообщение от Gonzo
Как HTTPConnection преобразует URL в IP ?
Как это можно посмотреть?
|
Если не путаю, преобразованием url занимается DNS, в данном случае, на стороне провайдера.
|
(Offline)
|
|
14.12.2013, 23:58
|
#40
|
Оператор ЭВМ
Регистрация: 25.08.2013
Адрес: Москва
Сообщений: 45
Написано 13 полезных сообщений (для 28 пользователей)
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
напишите пожалуйста пример как соединится и загрузить файл в программу как ресурс
|
(Offline)
|
|
15.12.2013, 02:21
|
#41
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Сообщение от RblSb
напишите пожалуйста пример как соединится и загрузить файл в программу как ресурс
|
По задумке должно быть так, но сам не тестировал:
uses binsock; var res:resource; status:integer; S:string; begin status := binsock.open('...');//Open connection res := binsock.get_in_stream;//Get input stream (resource) //Use standard resource functions if(ResourceAvailable(res)) then S := ReadLine(res); //Close connection binsock.close; end.
|
(Offline)
|
|
15.12.2013, 15:24
|
#42
|
Оператор ЭВМ
Регистрация: 25.08.2013
Адрес: Москва
Сообщений: 45
Написано 13 полезных сообщений (для 28 пользователей)
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
А как прописать параметр для binsock.open? Можно пример к какому-нить файлу? У меня ошибку подключения всегда выдает
|
(Offline)
|
|
16.12.2013, 02:04
|
#43
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Сообщение от RblSb
А как прописать параметр для binsock.open? Можно пример к какому-нить файлу? У меня ошибку подключения всегда выдает
|
Параметр должен содержать полный URL, включая протокол, порт и параметры, если они необходимы. То есть, например, для данной страницы нужно указать URL в виде
http://forum.boolean.name:80/showthread.php?t=8960&page=3
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
14.12.2015, 15:39
|
#44
|
Оператор ЭВМ
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
Допустим возникло исключение, управление передалось в обработчик исключения, там мы его обработали...
куда после этого перейдет управление в программе? На следующий шаг после инструкции, вызвавшей исключение или куда?
__________________
На западном фронте без перемен...
|
(Offline)
|
|
14.12.2015, 23:47
|
#45
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Lib_binsock: прием/отправка бинарных данных через сокет
За пределы блока catch, либо в блок finally, если он объявлен. На следующий шаг после инструкции, вызвавшей исключение, уже никак не попадёшь (разве что в каких-то языках при помощи goto).
Два года пытаешься разобраться? Вот это упорство.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:10.
|