【问题标题】:Sending and receiving data in parallel on socket android在socket android上并行发送和接收数据
【发布时间】:2017-07-05 16:47:30
【问题描述】:

我目前正在处理两个移动设备之间的文件传输。为此,我正在使用套接字通信。在使用 DataInput 和 Data Output Stream 的套接字上,我可以获得大约 6 MB/s 的速度。但根据我的用例,用户可以选择所有要传输的图像、视频、apk 和文档。所以假设用户选择了 2GB 数据与我的应用程序一起传输,他必须等待超过 6 分钟。所以我做了一些修改。 1] 在接收端我打开了 5 个端口(一个用于图像,一个用于视频等) 2]发件人将在相应的端口上发送适当的文件。 3] 我使用异步任务一次并行发送所有文件,接收器在 5 个不同的线程中接收数据。

但问题是 2GB 的速度仍然相同,大约为 6MB/s。 所以我的问题是: 1] 多端口套接字会提高性能吗? 2]如果我做错了什么,那么如何在套接字的不同端口上并行发送数据?

【问题讨论】:

    标签: android performance sockets


    【解决方案1】:

    根据我的经验,Android 设备的速度不能超过 7mb/s。使用一些数据监视器在局域网上启动文件传输。您会注意到它的最大速度约为 7mb。 抱歉,我还不能发表评论,所以添加为答案。

    【讨论】:

    • 也许他们的芯片无法超越这一点。
    • 您还可以使用多个线程在同一端口上并行发送数据。
    • 但是接收方如何区分数据呢?因为所有数据都以字节为单位。另外这会提高传输速度吗?
    • 您可以设计自己的协议。就像先发送一个字符串“文件类型:文件名”然后在另一端拆分该字符串以区分即将传输的内容。您还可以在一个字符串中发送文件大小或您想要的任何内容。
    • 我认为这两种情况都不会更快或更慢。
    猜你喜欢
    • 2013-11-01
    • 2021-07-05
    • 2023-04-11
    • 2012-11-08
    • 2013-01-17
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多