【发布时间】:2011-08-18 09:25:16
【问题描述】:
我目前正在通过 Java 套接字发送大量数据,并且我正在使用 Apache Commons IOUtils 库进行复制,并使用 copyLarge 方法发送/接收数据。问题是copyLarge 一直读取到输入流返回-1。我在下面复制了一个sn-p
while (-1 != (n = input.read(buffer))) {
output.write(buffer, 0, n);
count += n;
}
这个方法会阻塞直到socket关闭,但问题是我想重用socket来处理额外的大数据。我看到的替代方法是为每个正在传输的数据重新打开一个新套接字,或者编写我自己的读取方法来查找流标记的结尾(即换行符)。
我已经有一段时间没有编写这样的低级套接字代码了,但是我在这里遗漏了什么吗?或者有更简单的方法吗?
【问题讨论】: