开发者社区> 问答> 正文

android upd广播 sendto failed: ENETUNRE

手机间发送和接受udp广播
在手机都连的是路由是是没问题的 但是在手机用自带的wifi热点连接时
发送端发送udp广播时会抛出以下错误

 java.net.SocketException: sendto failed: ENETUNREACH (Network is unreachable)
 at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:541)
 at libcore.io.IoBridge.sendto(IoBridge.java:510)
 at java.net.PlainDatagramSocketImpl.send(PlainDatagramSocketImpl.java:182)
 at java.net.DatagramSocket.send(DatagramSocket.java:284)
 at com.example.udp_sreverdemo.SendThead.run(SendThead.java:97)
 Caused by: libcore.io.ErrnoException: sendto failed: ENETUNREACH (Network is unreachable)
 at libcore.io.Posix.sendtoBytes(Native Method)
 at libcore.io.Posix.sendto(Posix.java:146)
 at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:177)
 at libcore.io.IoBridge.sendto(IoBridge.java:508)

注 : 在手机用自带的wifi热点连接时 是可以ping通的

展开
收起
爵霸 2016-06-20 09:39:22 5140 0
1 条回答
写回答
取消 提交回答
  • 使用UDP协议进行信息的传输之前不需要建议连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到该报文,客户端根本不用管。
    通常我们讨论的udp的程序都是一对一的单播程序。本章将讨论一对多的服务:广播(broadcast)、多播(multicast)。对于广播,网络中的所有主机都会接收一份数据副本。对于多播,消息只是发送到一个多播地址,网络知识将数据分发给哪些表示想要接收发送到该多播地址的数据的主机。总得来说,只有UDP套接字允许广播或多播。

    2019-07-17 19:43:39
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载