2

我目前正在尝试将文件从 Android 设备传输到 Java TCP 服务器,但我找不到一个很好的示例来解释我需要实现它的结构。那里有许多解释文件传输的 Java 客户端和服务器示例,但我想确保一旦将 Android 设备扔进去,这是否仍然有效。

我的问题是如何实现这种结构?如果它不起作用,我会更好地通过 HTTP 连接将文件发送到 PHP 服务器吗?我在网上看到了很多关于后一种方法的示例和文档,所以我认为它更可靠。然而,我更喜欢使用 Java 服务器。

该文件由 Android 设备记录的大量坐标组成,然后将发送到服务器。我还没有确定如何存储这些数据,但我最初打算将它们存储在原始文本文件中。

4

1 回答 1

3

设计

您需要的第一件事是允许您在服务器上运行 Java 代码。

有多种选择。两种最流行的技术是GlassfishApache Tomcat

粗略地说,Apache Tomcat 足以用于简单的客户端-服务器通信,如果您需要做更复杂的事情,则使用 Glassfish。两者都允许Servlet(本质上是用 Java 编写的自包含服务器类)在服务器端运行。

他们每次收到请求时都会启动 JVM(Java 虚拟机)来处理与客户端的通信。Java servlet 可以在 JVM 内部运行,如果需要,在将响应发送回客户端之前进行一些处理。每个新请求都在 servlet 的新实例中运行。这使得处理多个并发请求更简单(不需要更复杂的线程)。

粗略的应用服务器设计

网络(向服务器发送数据和从服务器发送数据)

在联网情况下,客户端可以是 PC、Android 手机或任何其他能够连接到互联网的设备。就服务器而言,如果客户端可以使用 HTTP(它理解的标准协议)进行通信,它并不关心它是什么类型的设备。这意味着用于 PC 桌面客户端-服务器应用程序的解决方案类似于用于电话的解决方案。

您可以使用诸如Apache HTTP 组件之类的库来更轻松地处理设备和服务器之间的 HTTP 请求和响应。当然,您可以使用 Sockets 编写自己的类来执行此操作,但这将非常耗时,特别是如果您以前从未这样做过。

数据存储

如果您有时间,我建议您实施某种数据库来存储信息。它们具有许多好处,例如数据恢复机制、用于快速搜索数据的索引、确保数据完整性、更好的数据结构等。如果您决定使用数据库,我推荐MySQL。它是免费的,更重要的是 - 有据可查。

旁白:JDBC可用于使用 Java 与数据库进行通信。


对内联超链接感到抱歉 - 显然我的声誉不足以发布超过两个!

资料来源:实施类似设计的个人经验。

于 2012-07-12T21:43:29.613 回答