我的问题与下面的链接非常相似:
主要的区别是我试图通过包含Binary而不是文件的ServerSocket来解释Socket连接.这按预期工作.
但是,我遇到的问题是这个过程需要相当长的时间来读入内存,大约1分30秒,500字节(虽然每个流的大小会有很大的变化)
这是我的代码:
BufferedInputStream input = new BufferedInputStream(theSocket.getInputStream());
byte[] buffer = new byte[8192];
int bytesRead;
ByteArrayOutputStream output = new ByteArrayOutputStream();
while ((bytesRead = input.read(buffer)) != -1)
{
output.write(buffer, 0, bytesRead);
}
byte[] outputBytes = output.toByteArray();
//Continue ... and eventually close inputstream
Run Code Online (Sandbox Code Playgroud)
如果我在终端内的while循环中记录它的进度,它似乎很快就记录了所有字节(即到达流的末尾),但是在打开while循环并继续之前似乎暂停了一段时间.
希望有道理.
好吧,你正在阅读,直到套接字关闭,基本上 - 这read将是什么时候将返回-1.
所以我的猜测是,连接的另一端在关闭之前将其保持打开状态90秒.解决这个问题,你将解决你的问题.
| 归档时间: |
|
| 查看次数: |
1634 次 |
| 最近记录: |