【问题标题】:UDP connection test on BlackBerry SimulatorBlackBerry Simulator 上的 UDP 连接测试
【发布时间】:2010-10-25 18:31:17
【问题描述】:

我正在尝试使用 UDP(数据报)发送数据。我无法在模拟器上测试应用程序。我尝试先运行 MDS,然后运行模拟器,但它不起作用。该错误显示为端口 8080 已在 BlackBerry 模拟器控制台上使用。如何更改模拟器中的端口?我要连接的 UDP 端口是 localhost:5014

我正在为 BlackBerry Pearl 8100 使用模拟器。

【问题讨论】:

    标签: networking blackberry java-me udp rim-4.5


    【解决方案1】:

    Blackberry forum 上有关于 4.5.0.x 到 4.5.0.83 的数据报问题的 cmets。难怪 sdk 中没有 UDP 样本。 你总是可以从http://na.blackberry.com/eng/developers/下载8100和4.5.0.108模拟器

    还有一点就是使用ip,虽然api引用中允许hostname,但是when you use MDS simulator it grabs localhost alias.

    在下面的代码中,您有一个简单的服务器正在监听端口 135,而 bb 客户端正在通过端口 135 向 127.0.0.1 发送数据包。

    桌面服务器代码:

    public static void main(String[] args) {
        byte[] inBuff = new byte[32];
        DatagramSocket socket;
        try {
            socket = new DatagramSocket(137);
            DatagramPacket pckt = new DatagramPacket(inBuff, inBuff.length);
            while (true) {
                socket.receive(pckt);
                System.out.println(new Date() + " " + pckt.getAddress()
                        + ":" + pckt.getPort());
                socket.send(pckt);
            }
        } catch (Exception e) {
            System.out.println(e.getMessage()+":");
            System.out.println(e.getClass().getName());
        }
    }
    

    BlackBerry 客户端代码(在 4.6.1 下使用 Bold 8900 测试):

        UDPDatagramConnection connection = null;
        byte[] outBuff = "Hello!".getBytes();
        Datagram outDatagram = null;
        try {
            connection = (UDPDatagramConnection) Connector
                    .open("datagram://127.0.0.1:137");
            outDatagram = connection.newDatagram(outBuff, outBuff.length);
            connection.send(outDatagram);
            System.out.println("Datagram packet was sent");
        } catch (Exception e) {
            System.out.println(e.getMessage()+":");
            System.out.println(e.getClass().getName());
        }
    

    【讨论】:

    • 我是这个 BB 开发的新手。如何访问 UDPDatagramConnection?这是我必须导入的库吗?我正在使用 RIM 的 Visual Studio 插件进行 BB 开发。
    • BB VS 插件用于 RAD 应用程序开发,它不是 j2me,因此无法访问 UDPDatagramConnection。要运行此代码,您可以使用 Eclipse BB 插件或 BB JDE。要询问 VS 插件上的相同功能,我建议创建单独的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多