1

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);
        }
    }
}
4

3 に答える 3

2

BlackBerry でのネットワーク アクセスは、開発者の観点から見ると、まったく無意味ではありません。URL で接続方法を指定するか、[オプション] > [詳細オプション] > [TCP 設定] でデバイスの APN が正しく設定されている必要があります。それらを見つけて入力して、機能するかどうかを確認できます。

于 2009-01-20T18:30:46.257 に答える
1

UDPでは、APNをConnector.open():に設定する必要があります。

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

詳細については、コネクタを確認してください

シミュレータにはAPNがないため、APNなしのシミュレータでは正常に動作しますが、実際のデバイスでは必要です。

于 2009-04-30T16:15:52.723 に答える
-1

次の 2 つの可能性が考えられます。

  1. UDP はJ2ME 仕様optionalに含まれているため、Blackberry ではサポートされていない可能性があります。
  2. デバイスが接続されているネットワークではサポートされていない可能性がありますが、デバイスはこれを検出して、例外を報告します。
于 2009-01-18T22:07:33.277 に答える