您的
do/while循环一直运行到流结束,但是对等方永远不会关闭套接字。该协议似乎要求打开套接字以供其他命令使用,因此您必须调整它的这一部分以包括一个长度字前缀,以便您知道要复制多少字节。
问题不是关于
ByteArrayOutputStream不写所有字节,而是关于阻塞in
is.read()。

您的
do/while循环一直运行到流结束,但是对等方永远不会关闭套接字。该协议似乎要求打开套接字以供其他命令使用,因此您必须调整它的这一部分以包括一个长度字前缀,以便您知道要复制多少字节。
问题不是关于
ByteArrayOutputStream不写所有字节,而是关于阻塞in
is.read()。