在java中获取Inputstream的结尾
下面是我的客户端代码,它从服务器检索文本并打印在java中获取Inputstream的结尾,java,sockets,Java,Sockets,下面是我的客户端代码,它从服务器检索文本并打印 Socket socket = new Socket(ip, port); InputStream in = socket.getInputStream(); OutputStream out = socket.getOutputStream(); String string = "Hello!\n"; byte buffer[] = string.getBytes();
Socket socket = new Socket(ip, port);
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
String string = "Hello!\n";
byte buffer[] = string.getBytes();
out.write(buffer);
while ((character = in.read()) != -1){
System.out.print((char) character);
}
我正在从服务器获取正确的值,但这种情况一再发生,我如何才能找到发送的值的长度。
-1
表示流的结束,并在连接关闭时接收。如果希望保持连接打开并发送多条消息,则需要某种协议(类似于两端之间的协议)来告知消息的结束位置。实现这一点的方法有很多,但在您的示例中,您正在将行终止符(\n
)写入消息的末尾,因此您可以在另一端检查它。另一种方法是在实际消息内容之前写入要发送的字节数。一次又一次发生了什么?