【问题标题】:Send 5MB of data over a socket?通过套接字发送 5MB 数据?
【发布时间】:2025-12-14 14:45:02
【问题描述】:

您好,我想使用 Java 编程语言通过 TCP 从服务器向 Android 客户端发送固定数量的数据(比如 5MB)。数据无关紧要,它会被丢弃在客户端我这样做只是为了在手机上进行性能测量。

谁能推荐一个完成此任务的好方法?如何让服务器不断发送大量数据?没有从文件中读取一行,然后发送这些字节的间歇性行为......然后读取另一行并发送这些字节。

想法?干杯。

【问题讨论】:

  • 衡量手机数据传输率的唯一目的是什么?像Speed Test 这样的东西会起作用吗?
  • 我实际上关注的是能源效率。我想看看接收整个传输需要多少电池,然后看看我是否可以操纵传输来延长电池寿命,同时尽量减少额外的延迟。

标签: java android performance tcp large-data-volumes


【解决方案1】:

你不需要发送文件,你可以只发送一个数据块。

// server which sends 5 MB on connection.
ServerSocket ss = 
Socket s = ss.accept();
s.getOutputStream().write(new byte[5*1024*1024]);
s.close();

【讨论】:

    【解决方案2】:

    您可以有一个大小为 1024 的字节数组,并循环将它一遍又一遍地发送到套接字。数据不需要是唯一的。如果您觉得 KB 对您来说不够大,您可以使用更大的数组。

    听起来您在询问那里的服务器。您是否也想了解客户?

    【讨论】:

    • 我目前正在与客户进行斗争。我对 Android 还是很陌生。
    最近更新 更多