用于非面向行的应用程序级协议的Java服务器程序

nik*_*kos 1 java network-programming

我正在用Java编写服务器应用程序.要从套接字读取我有:

line = in.readLine();
Run Code Online (Sandbox Code Playgroud)

where in是一个BufferReader实例,所以我可以从套接字流中读取字符串.

我怎样才能改变这一点,将我的程序用于非面向行的协议,其中每个应用程序级消息的结尾都被一个特殊的charachter终止,例如%,而不是换行符号?

JB *_*zet 5

read()在循环中使用该方法,直到字符为止%.在每个角色,将其附加到StringBuilder.

StringBuilder builder = new StringBuilder();
for (int i = reader.read(); i >= 0; i = reader.read()) {
    char c = (char) i;
    if (c == '%') {
        break; // or consume the current builder, and recreate a new one
    }
    else {
        builder.append(c);
    }
}
Run Code Online (Sandbox Code Playgroud)