JAVA:TCP readline()终止,二进制零

JAVA:TCP readline()终止,二进制零,java,tcp,Java,Tcp,我试图从第三方服务器接收TCP数据,其消息以二进制零('\0')而不是换行符('\n)终止。据我所知,JAVA的readline()等待'\n'终止,这可能是我的代码挂起的原因 try { socket = new Socket(hostip, portNum); BufferedReader inFromServer = new BufferedReader(new InputStreamReader (socket.getInputStream())); msg =

我试图从第三方服务器接收TCP数据,其消息以二进制零(
'\0'
)而不是换行符(
'\n
)终止。据我所知,JAVA的
readline()
等待
'\n'
终止,这可能是我的代码挂起的原因

try {
    socket = new Socket(hostip, portNum);
    BufferedReader inFromServer = new BufferedReader(new InputStreamReader (socket.getInputStream()));
    msg = inFromServer.readLine();
    socket.close();
    } catch (IOException e) {
        msg = "Connection failed. IOException.";
    }
是否有一种从服务器读取消息的方法,使得
'\0'
表示传输结束,而不是
'\n'


谢谢

直接使用
InputStreamReader

    try {
        socket = new Socket(hostip, portNum);
        InputStreamReader in = new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8);

        StringBuffer sb = new StringBuffer();
        int ch = 'a';

        while((ch = in.read()) != (char)0){
            if(ch == -1) break;
            System.out.println(ch);
            sb.append((char)ch);
        }

        msg = sb.toString();
        socket.close();
        } catch (IOException e) {
            msg = "Connection failed. IOException.";
        }

根据定义,行由行终止符终止。C字符串以null结尾。谢谢-我试试看。