您好我从http://developer.android.com/training/connect-devices-wirelessly/nsd.html下载了NsdCaht应用。当我尝试连接两台设备时,我会遇到异常。
java.net.ConnectException: failed to connect to /192.168.1.144 (port 42289): connect failed: ECONNREFUSED (Connection refused)
at libcore.io.IoBridge.connect(IoBridge.java:114)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.Socket.startupSocket(Socket.java:566)
at java.net.Socket.<init>(Socket.java:225)
at com.example.android.nsdchat.ChatConnection$ChatClient$SendingThread.run(ChatConnection.java:215)
at java.lang.Thread.run(Thread.java:841)
Caused by: libcore.io.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
at libcore.io.Posix.connect(Native Method)
at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
at libcore.io.IoBridge.connect(IoBridge.java:112)
请给我一点想法......
答案 0 :(得分:0)
在发现部分工作后,我在相当一段时间内得到同样的错误。然后经过一段时间突然它连接起来,我就能将消息发送到其他设备。通过按下注册从两个或多个设备进行服务广播后,android重命名一些服务以避免同名冲突。通常,服务以原始名称前面的括号中的数字命名,例如。 Nsdchat(90)。 因此,无论何时按下注册按钮,都会注册具有不同名称的服务,并为该服务分配新端口。这导致先前端口的关闭,但是到目前为止,先前的服务名称尚未注册。因此,其他设备能够查看与之关联的先前服务名称和端口,但无法连接到它,因为端口已关闭,因此提供IOException,这是在未找到主机时给出的。 因此,尝试重新连接到网络,重新启动应用程序,然后只按一下注册按钮,以便每个设备都有一个服务,一个Ip和一个可以连接的端口。 希望这可以帮助。