gpt4 book ai didi

java - 如何使用 NIO 从服务器检索数据

转载 作者:行者123 更新时间:2023-11-30 01:17:21 24 4
gpt4 key购买 nike

我有一个项目,需要我创建一个连接到 MySQL 数据库的 Java 服务器。该服务器将处理来自客户端的请求,从数据库向它们发送数据。客户的请求将是:

  • 检查用户是否已在数据库中注册
  • 将用户添加到数据库
  • 获取用户列表以及其中哪些人在线(这是我使用 HashMap 的地方)

经过一番搜索后,我得出的结论是使用 NIO,因此我不会获得太多线程来处理多个客户端请求。 我的问题是,当您想要发送列表或 HashMap 等数据时,我无法理解如何从 channel 检索数据。我的意思是,我已经了解了 read(buffer) 方法的工作原理。我只是无法理解 - 例如 - 如何从缓冲区取回 HashMap 对象,或者如何检索任何类型的“结构化”数据。如果有人可以解释(也许可以举个例子),那就太好了。

也许有另一种方式来传达我需要的数据,这对我来说更容易理解。我不知道。非常感谢您的见解。

附注:我的问题不是因为 NIO 而无法得到它,我对典型的输入/输出流也有同样的问题。

我应该提到,实际的项目是创建一个 Java 服务器,客户端将是 Android 设备。但由于我是个新手,所以我想在使用 Android 之前先测试两个桌面、Java、应用程序之间的通信。我提到这一点是因为我看到了一些有关 Java RMI 的内容,它允许您远程使用服务器的方法,但我认为您不能在 Android 中使用它。

最佳答案

您可以使用序列化机制读取和写入对象。涉及的类是ObjectOutputStream 和ObjectInputStream。但它们是基于流的,因此它们不太适合 nio 模型。官方教程中介绍了它们:http://docs.oracle.com/javase/tutorial/essential/io/objectstreams.html

另一种选择是使用 Google Protocol Buffer 。

关于java - 如何使用 NIO 从服务器检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18931293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com