【问题标题】:Wifi socket connection nullpointer exception at answerWifi 套接字连接 nullpointer 异常
【发布时间】:2013-04-24 11:04:52
【问题描述】:

我编写了一个连接到 java 服务器的应用程序。它向服务器发送一条小消息,如果消息为“on”,则服务器会回复。对于任何其他情况,服务器不会发回数据。

我写了一行来检查输入流是否为空,但它在服务器没有响应时得到一个空指针异常。这对我来说很奇怪:

if (!(line = in.readLine()).equals(null)) { Remote.setValue(line); }

因此,如果“line”为空,那么它应该跳过(或转到其他部分,如果它会在哪里)我设置值的部分,但它会挂起。只需阻止整个应用程序。

我做错了什么?为什么是这样?我该如何解决?请帮忙!

【问题讨论】:

  • 这会抛出 NullPointerException。

标签: android sockets nullpointerexception inputstream


【解决方案1】:

您没有检查输入流是否为空。您正在检查 readLine 是否返回 null。

试试这个:

if (in != null) {
  line = in.readLine();
  if (line != null) {
      Remote.setValue(line);
  }
}

编辑:

使用socket.setSoTimeout (x),其中x 是某个正整数,以便in.readLine() 在输入可用之前不会阻塞。

【讨论】:

  • in 不为空,但第二个 If 从未执行
  • 您应该为您的套接字设置超时。否则它会一直阻塞,直到有东西要读。
  • 好吧,它以某种方式工作......我不知道为什么,但感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2014-03-01
  • 1970-01-01
  • 2016-06-24
  • 1970-01-01
  • 1970-01-01
  • 2019-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多