1

我正在研究 COAP 以在设备之间传输信息。我只是在学习阶段。我参考了一个使用 californium 在 Eclipse 中实现 COAP 示例的文档。在那,我尝试了文档中提供的示例来连续观察服务器状态,但它不起作用,只是在我运行项目时显示空指针异常。然后我尝试调试代码以了解空指针异常的原因,它运行良好,连续获得结果,我不明白为什么它在运行项目期间产生错误,但在调试期间却没有。请帮忙

我正在使用的代码是:

public class HelloObserver {

    public static void main(String[] args) {
         CoapClient client = new CoapClient("coap://vs0.inf.ethz.ch:5683/obs");

         CoapObserveRelation relation=    client.observe(new CoapHandler() {


                @Override
                public void onLoad(CoapResponse response) {

                    System.out.println(response.getResponseText());
                    /*response.notify();*/
                    // TODO Auto-generated method stub

                }

                @Override
                public void onError() {
                    System.err.println();
                    // TODO Auto-generated method stub

                }
            });

         relation.proactiveCancel();
    }

}
4

1 回答 1

3

Vicky,您的 main() 几乎立即退出,因此不可能调用 CoapHandler。设置好观察关系后,您需要确保您的程序仍在执行某些操作,例如一段时间(true),您在其中睡眠 10 秒并发送 ping 或类似的东西。

您可能想看看在这个例子中它是如何完成的,当按下一个键时程序基本上终止了。

于 2015-03-06T15:22:57.320 回答