我有一个项目需要我创建一个将连接到 MySQL 数据库的 Java 服务器。该服务器将处理来自客户端的请求,向他们发送来自数据库的数据。来自客户的请求将是:
- 检查用户是否在数据库中注册
- 将用户添加到数据库
- 获取用户列表以及其中哪些在线(这是我使用 HashMap 的地方)
经过一番搜索,我得出了使用 NIO 的结论,因此我不会获得太多线程来处理多个客户端请求。我的问题是我不明白当你想发送时如何从通道中检索数据,例如,一个列表或一个哈希映射。我的意思是,我已经了解了 read(buffer) 方法的工作原理。我只是无法理解——例如——你如何从缓冲区中取回 HashMap 对象,或者如何检索任何类型的“结构化”数据。如果有人可以解释(也许有一个例子),那就太棒了。
也许还有另一种方式来传达我需要的数据,这对我来说更容易理解。我不知道。非常感谢您的洞察力。
PS:我的问题不是因为 NIO 我没有得到它,我对典型的输入/输出流也有同样的问题。
我应该提一下,实际项目是创建一个 Java 服务器,客户端将是 android 设备。但由于我是一个新手,我想我会先测试两个桌面、Java、应用程序之间的通信,然后再选择安卓。我提到这一点是因为我看到了一些关于 Java RMI 的东西,它允许您远程使用服务器的方法,但我认为您不能在 Android 中使用它。