java - 从Android到服务器的多个文件传输协议(protocol)为 "authentication"

标签 java android network-protocols

我是一名新手程序员,正在寻找一种在 Android 上实现简单文件传输协议(protocol)的方法。

问题:

一些 Android 手机需要连接到服务器来接收/发送一系列保存在内部存储中的 XML 文件。服务器需要知道哪部手机正在请求连接,以便将文件保存在正确的文件夹中。

可能的解决方案/算法:

有各种关于如何将文件发送到服务器的教程/示例,但它们似乎都没有实现某种“身份验证”。

理想情况下,我想实现以下内容(我将使用一个比喻):

Phone: Hello. 

Server: Hi. Who are you and what do you want? [send/receive]

Phone A: I'm phone A and I would like to send files.

Server: How many files do you want to send, Phone A?

Phone A: 6 files, [+extra data like total size or whatever]

Server: Alright, you can begin the transfer.

Phone A: Transfers...

Server: I've succesfully received 6 files, have a good day. [stores the files in a PhoneA folder]

Phone A: Bye! [closes connection]

我意识到这很可能会变得更有效率,但我不知道从哪里开始...... 是否可以发起与服务器的连接并在等待响应时进行多次交互?

问题: 有人能以某种方式插入我走向正确的方向吗?我应该编写自己的协议(protocol)还是可以使用标准功能来完成?对于这种实现来说,最好/最简单的现有协议(protocol)是什么?

我找到了this article有趣,但我不明白它如何用于具有身份验证的多个文件

任何帮助将不胜感激!

最佳答案

这比您想象的使用老式 FTP 更容易,我已经成功地使用它从应用程序收集数据,并且您的服务器肯定会支持它。

  1. 使用 enter link description here 为每台 Android 设备获取唯一 ID 。您将获得一个 64 位数字(作为十六进制字符串),该数字是在每个设备首次启动时随机生成的。据推测,它在设备的使用生命周期内是恒定的。

  2. 导入 Apache Commons FTP 并使用 the method describe here在服务器上的工作目录中创建一个目录名称,其名称与唯一 ID 匹配。

  3. 使用相同的库通过 FTP 上传文件。您会发现许多有关如何执行此操作的示例。只需很少的代码。

与您的聊天场景不同,这是一个非常客户端的解决方案,您可能不希望手机可以上传文件 - 没有黑名单 - 但它很容易实现。

关于java - 从Android到服务器的多个文件传输协议(protocol)为 "authentication",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27547950/

相关文章:

java - GCM 类转换异常

java - Android 上停止 for 循环的按钮

tcp - ping如何解析ip地址?

c++ - 客户端服务器消息解释

java - 将字符附加到加载到内存中的文件的最快/最有效的方法是什么?

JavaFX:如何刷新表格?

java - 标志为假时如何延迟和循环?

java - Android 唯一 key

android - VideoView 不会缩放内容以匹配其父项

python - 解析类似 XMPP 的 XML 流的最佳方法?