【发布时间】:2015-05-23 00:59:35
【问题描述】:
我使用 java.net.Socket 在我的应用程序中接收消息。接收非常慢。接收 250 kB 的时间超过 7 秒。我能做些什么来加速这一点。 7秒太长了……
InputStream is = null;
byte[] arr = new byte[8192];
try {
is = client.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
int bytesNumber;
StringBuffer sb = new StringBuffer();
try {
while ((bytesNumber = is.read(arr)) >= 0) {
if (bytesNumber == 8192) {
sb.append(arr);
continue;
} else {
for (int i = 0; i < bytesNumber; i++) {
sb.append(arr[i]);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
【问题讨论】:
-
什么是
tab?你有is.read(tab) -
首先,您的代码与您添加内容的方式完全不正确。其次,代码通常不是接收数据速度的限制——客户端的上传速度和服务器的下载速度通常是速度受限的原因。
-
那么快速读取数据的最佳方法是什么?
标签: java performance sockets stream inputstream