【发布时间】:2016-09-11 12:07:20
【问题描述】:
我有一个 Android 应用程序,它充当服务器并通过 TCP 以任意间隔(在 5-60 秒内)从传感器提供一些数据。客户端应用程序偶尔会通过同一连接发送小块数据。数据的发送和接收必须没有任何延迟。
所有示例和教程(例如http://adblogcat.com/asynchronous-java-nio-for-dummies/)都显示了或多或少相同的场景 - 阅读完成后,切换到 OP_WRITE。写入完成后切换到 OP_READ 等等。 显然它不适用于我的情况。我试过像这样同时启用读取和写入
serverChannel.register(selector, SelectionKey.OP_READ|SelectionKey.OP_WRITE);
但它使选择器循环不断,这会增加 CPU 的负载。
我确定这个问题并不真正正确,所以即使有人给我完全不同但可行的想法或我错的地方,我也会很高兴。 我没有发布代码,因为它与前面提到的教程几乎相同。
【问题讨论】: