适用于Android的非阻塞IO

时间:2010-11-27 19:23:53

标签: android select p2p

我目前正在尝试评估是否可以为Android实现项目。我发现一个主要问题是,由于它是一个P2P客户端,我们必须在运行时保持大量的连接。现在连接不传输大量数据,它更像是一个消息传递系统,因此如果我们不时地读取64字节的单个消息,那么为每个连接创建一个线程会产生无用的开销。

所以我想知道Linux上是否支持非阻塞IO,例如select()或poll()。

有什么建议吗?

2 个答案:

答案 0 :(得分:6)

答案 1 :(得分:2)

当然。一旦你的应用程序声明使用了互联网权限,你就可以使用NDK完成通常可用于C中的非root用户的所有普通Linux网络内容,以及任何来自java的人(可能是你没有人打过它)打算写支​​持。

嗯,有一个例外:您的移动服务提供商可能不会允许传入连接,大多数无线路由器都不允许,除非您专门设置它们。但这些都是基础设施问题,而不是Android本身的问题。

您可能还需要提供一些Activity的组合来提供前台UI和服务,以便在后台继续实际传输,只显示状态栏图标。