在socket android上并行发送和接收数据

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

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

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

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

可能他们的芯片的bcoz无法超越这一点。您也可以使用多个线程在同一端口上并行发送数据。但是接收器将如何区分数据?因为所有数据都以字节为单位。另外,这会提高传输速度吗?您可以设计自己的协议。比如先发送一个字符串“filetype:filename”,然后在另一侧拆分该字符串,以区分将要传输的内容。您也可以在一个字符串中发送文件大小或任何您想要的内容。我认为这两种情况都不会更快或更慢。