无法读取java中的流

无法读取java中的流,java,sockets,inputstream,outputstream,Java,Sockets,Inputstream,Outputstream,我使用tcp套接字在java中进行客户机-服务器编程。在outputstream中写入消息后,我开始读取inputstream,并继续读取,直到inputstream返回-1EOF。但是它没有回来-1,我被绊倒了。请给出你的建议。请看下面的代码 int bytesRead = tcpSocket.readPacket(buffer); while(bytesRead != -1) { builder.append(new String(buffer, 0, bytesRead));

我使用tcp套接字在java中进行客户机-服务器编程。在outputstream中写入消息后,我开始读取inputstream,并继续读取,直到inputstream返回-1EOF。但是它没有回来-1,我被绊倒了。请给出你的建议。请看下面的代码

int bytesRead = tcpSocket.readPacket(buffer);
while(bytesRead != -1) {
    builder.append(new String(buffer, 0, bytesRead));
    bytesRead = tcpSocket.readPacket(buffer);
}

如果它是一个套接字,那么当连接正常终止时将返回-1


在您的情况下,我猜没有进一步的数据通过,但也不会返回-1。

您是如何设置tcpSocket的?什么在向套接字发送信息?您使用的是什么类-即tcpSocket的类型?我使用服务器的ip地址和端口号设置tcp套接字。我正在以xml格式发送信息。如果这个程序是客户端,服务器必须在写入响应后关闭outputstream。或者服务器返回内容长度,客户端必须准确读取字节大小。@user2570465我使用java中的socket.class,用于连接、读取和写入流调试时,当调试器到达此行时,n=socketRead0fd,b,off,length,impl.getTimeout socketRead0方法不返回任何内容,调试器消失。“调试器消失”是因为没有进一步的执行-调用阻塞。如果要接收更多数据,或者对等方关闭了连接,调试器将在下一行继续。