java中获取Inputstream结尾的socket
下面是我的客户端代码,它从服务器检索文本并打印
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 楼答案
-1
表示流的结束,在连接关闭时接收。如果希望保持连接打开并发送多条消息,则需要某种协议(类似于两端之间的协议)来告知消息的结束位置。实现这一点的方法有很多,但在您的示例中,您正在将行终止符(\n
)写入消息的末尾,因此您可以在另一端检查它。另一种方法是在实际消息内容之前写入要发送的字节数