Ошибка отправки UDP на BlackBerry

Я пишу сетевое приложение для Blackberry. Этот код верен на симуляторе, но не работает на устройстве. Когда я запускаю свое приложение на симуляторе, мой сервер получает сообщение, но когда я запускаю его на устройстве, я получаю исключение not IOException с сообщением "NULL".

try {
     byte[] b = msg.getBytes();
     dc = (UDPDatagramConnection)Connector.open("datagram://"+getHIP()+":" + getHPort());
     Datagram dobject = dc.newDatagram(b, b.length);
     dc.send(dobject);
     System.out.println("Addr:" + dobject.getAddress());
     System.out.println("Well Done!");
} catch (IOException e) {
    System.out.println(e.getMessage());
} catch (Exception e) {
    System.out.println(e.getMessage());
} finally { 
    if (dc != null) {
        try {
            dc.close();
        } catch (Exception f) {
            System.out.println("Failed to close Connector: " + f);
        }
    }
}

person Qubeuc    schedule 18.01.2009    source источник
comment
Какое точное исключение вы испытываете?   -  person roryf    schedule 20.01.2009


Ответы (3)


Сетевой доступ на BlackBerry далеко не так прост с точки зрения разработчика. Вы должны либо указать способ подключения в URL-адресе, либо устройство должно иметь правильные настройки APN в «Параметры» > «Дополнительные параметры» > «Настройки TCP». Вы можете попробовать найти их и ввести их, чтобы увидеть, работает ли это.

person roryf    schedule 20.01.2009

UDP требует, чтобы APN был установлен в Connector.open():

(DatagramConnection) Connector.open("udp://<host>:<dest_port>[;<src_port>]/<apn>[|<type>][;tunnelauthusername=<apn username>;tunnelauthpassword=<apn password>]");

Для получения дополнительной информации об этом посетите Коннектор

Он отлично работает на симуляторе без APN, потому что у симулятора нет APN, а вам нужно на реальном устройстве.

person kozen    schedule 30.04.2009

Я могу думать о двух возможностях:

  1. UDP является optional в спецификации J2ME, так что, возможно, Blackberry не поддержите это.
  2. Сеть, в которой находится устройство, может не поддерживать его, и устройство может обнаружить это и сообщить об этом с исключением.
person Douglas Leeder    schedule 18.01.2009