2010-11-27 90 views
3

我目前正在嘗試評估是否可以爲Android實現項目。我看到的一個主要問題是,由於它是一個P2P客戶端,我們在運行時必須保持大量的連接。現在,連接不會傳輸大量數據,它更像是一個消息傳遞系統,因此,如果我們每隔一段時間閱讀一條64字節的單個消息,那麼每個連接都有一個線程會產生無用的開銷。適用於Android的非阻塞IO

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

有什麼建議嗎?

回答

5
+0

對我來說這看起來很完美。非常感謝:-D – cdecker 2010-12-04 16:09:39

1

當然。一旦您的應用程序聲明使用互聯網許可,您可以使用NDK在C中使用通常可用於非root用戶的所有常規Linux網絡事物,並且可以使用Java中的任何人(可能是您如果沒有人毆打您)不屑於寫支持。

嗯,有一個例外:你的移動提供商可能不允許傳入連接,除非你特別設置它們,否則大多數wifi路由器都不會。但這些都是基礎設施問題,而不是android本身的問題。

您可能還需要想出一些活動的組合,以提供前臺用戶界面和一項服務,以在僅顯示狀態欄圖標的情況下繼續實際傳輸。