2012-03-17 58 views
0

我正在構建一個Android應用程序,它有一個偵聽多個傳入連接的服務器,並且也有多個傳出連接。如果我有1個服務器和多個客戶端,是否需要SocketServerChannel?

我有1個主要活動和2個輔助類:服務器和客戶端。它們都擴展了ASyncTask以實現多線程。

我打算使用Selector來完成這項工作。所以,我打算爲服務器類使用SocketServerChannel,同時爲我的客戶端類使用多個SocketChannel。這些通道將由選擇器處理。

我的問題是,因爲我使用的是單個服務器和ASyncTask,所以在我的服務器類中使用SocketServerChannel和Selector是多餘的?還是應該使用它來管理多個傳入連接?

編輯:我找到了另一種方法來做到這一點。這是非常低效的,但它完成了工作。我只使用普通的套接字和服務器套接字,併爲所有可能的傳出連接,我創建一個新的套接字,只有一次性使用。這樣,我不必費心跟蹤所有的連接。

+0

這取決於您計劃一次處理多少個連接。 – Jeffrey 2012-03-17 05:15:39

+0

您需要ServerSocket或ServerSocketChannel。那裏沒有冗餘。你的問題還不清楚。 – EJP 2012-03-17 05:17:23

回答

1

Java.nio通常比使用java.io更復雜,並且在速度和負載方面必然更優化。

相關問題