关于io:Java:区分一条消息的末尾与流的末尾

Java: Distingushing between end of one message and end of the stream

我正在使用SSH编写一个写到命令行的小程序,因此通常在输入一些内容后即可获得输出。

所以现在我正在读取这样的输出:

1
2
3
4
5
6
7
8
9
10
11
12
    new Thread() {
        public void run() {
            int character;
            try {
                while ((character = output.read()) != -1) {
                    string += character;
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }.start();

到目前为止,我正在控制流的结尾。 但是,我希望能够估计一条消息的结束时间(不必只一行),这意味着我分别将远程输出传递给已发送的输入。

有可能这样做吗?

例如,当我通过SSH登录时,我发送命令" ssh user @ server",现在读取线程应该只读取" user @ server的密码:"消息,然后释放对象的锁,以便写入流可以通过 上。 但是我不知道该怎么做...


TCP中没有消息。 它是一个字节流。 如果需要消息,则必须自己定义和实现。 在某些简单的情况下,一行是一条消息。 正如您所说的,情况并非如此,您可以自行定义。