首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android非阻塞IO

Android非阻塞IO
EN

Stack Overflow用户
提问于 2010-11-28 03:23:53
回答 2查看 4.7K关注 0票数 5

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

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

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-28 04:49:05

查看java.nio套接字、选择器和通道。一些链接:

Android: Unbuffered IO http://developer.android.com/reference/java/nio/channels/ServerSocketChannel.html http://developer.android.com/reference/java/nio/channels/SocketChannel.html http://www.developer.com/java/article.php/3837316/Non-Blocking-IO-Made-Possible-in-Java.htm

或者,也许我没有正确理解你的问题。

票数 7
EN

Stack Overflow用户

发布于 2010-11-28 13:50:11

当然了。一旦你的应用程序声明了使用互联网的权限,你就可以使用NDK来做所有正常的linux联网操作,通常非root用户可以使用NDK,并且可以在java中做任何有人(如果没有人打败你,可能是你)费心写支持的事情。

好吧,有一个例外:你的移动提供商可能不会允许传入连接,大多数wifi路由器也不会,除非你特别设置它们。但这些都是基础设施问题,而不是android本身的问题。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4293448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档