2009-01-18 5 views
1

J'écris une application réseau pour Blackberry. Ce code est correct sur le simulateur mais ne fonctionne pas sur un périphérique. Lorsque j'exécute mon application sur le simulateur, mon serveur reçoit le message mais lorsque je l'exécute sur un périphérique, j'obtiens une exception, not IOException, avec le message "NULL".UDP Envoyer une erreur sur BlackBerry

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); 
     } 
    } 
} 
+0

Quelle est l'exception exacte que vous rencontrez? – roryf

Répondre

-1

Je pense à deux possibilités:

  1. UDP est optional dans le J2ME spec - alors peut-être le Blackberry ne le supporte pas.
  2. Le réseau sur lequel le périphérique est activé peut ne pas le prendre en charge et le périphérique peut le détecter et le signaler avec une exception.
2

L'accès au réseau sur le BlackBerry est loin d'être sans faille du point de vue du développeur. Vous devez spécifier la manière dont la connexion doit être établie dans l'URL, ou l'appareil doit avoir les paramètres APN corrects dans Options> Options avancées> Paramètres TCP. Vous pourriez essayer de les trouver et de les entrer pour voir si cela fonctionne.

1

UDP nécessite l'APN à définir dans le Connector.open():

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

Pour plus d'informations sur ce chèque le Connector

Il fonctionne très bien sur le simulateur w/o APN parce que le simulateur n » J'ai un APN, mais vous avez besoin d'un vrai périphérique.

Questions connexes