有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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. # 1 楼答案

    -1表示流的结束,在连接关闭时接收。如果希望保持连接打开并发送多条消息,则需要某种协议(类似于两端之间的协议)来告知消息的结束位置。实现这一点的方法有很多,但在您的示例中,您正在将行终止符(\n)写入消息的末尾,因此您可以在另一端检查它。另一种方法是在实际消息内容之前写入要发送的字节数