不要在Android中使用UDP阻止接收

时间:2013-05-05 19:39:26

标签: android udp

是否可以确定udp套接字上是否有可用数据,而不是在数据可用之前阻塞?我想避免多线程我的应用程序因为它会引入复杂性 - 毕竟,我怀疑有很多人会喜欢不必要地玩线程和同步!

例如,在C#中,我可以调用socket.Available> 0

1 个答案:

答案 0 :(得分:1)

如果这是一个TCP套接字你可以Socket.getInputStream().available(),但根据你的帖子你正在使用UDP。你确定你真的想要使用UDP吗?

如果是这样 - 那么不,UDP套接字没有“可用字节”的概念 - 因为你并没有真正连接到另一端的任何东西。您只是盲目地监听数据到达特定端口。你必须坐下来等待事情的到来。在这种情况下,C#的socket.Available实际上是一个外观。它只是告诉你套接字队列中剩余的字节数。

您可以使用Android的异步任务作为构建自己的线程等的简单替代方法。

http://developer.android.com/reference/android/os/AsyncTask.html