Android:通过TCP Java Socket传输文件

时间:2012-07-12 20:42:49

标签: java php android sockets file-io

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

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

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

1 个答案:

答案 0 :(得分:3)

<强>设计

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

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

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

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

Rough application-server design

网络(与服务器之间发送数据)

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

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

存储数据

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

除此之外:JDBC可用于通过Java与数据库进行通信。


对于内联超链接感到抱歉 - 显然我的回复不够高,不能发布超过两个!

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

相关问题