【问题标题】:android socket TCP line terminatorandroid socket TCP 行终止符
【发布时间】:2013-03-22 16:31:58
【问题描述】:

我怎么知道

 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

遇到行终端“\r\n”时停止读取缓冲区?

【问题讨论】:

    标签: android sockets buffer terminator


    【解决方案1】:

    类似的东西:

    String strLine = null;
    
    //Read File Line By Line
    while ((strLine = in.readLine()) != null  )   {
            if(strLine.contains("\r\n")){
                    break;
                 }
    
    
            }// end while
    
             in.close();
             ...
    

    【讨论】:

    • 从技术上讲,调用in.readLine() 本身意味着该行被一个新的换行序列终止。
    • 我没有正确解释自己。我有一个总是发送“%d\r\n”的服务器,每次客户端收到这个字符时,我希望它在屏幕上显示 i。问题是 BufferedReader 正在读取它的最大大小,并且只让我读取“in”并在将数据存储到其最大容量后将其传递给 UI 线程。我想要的是告诉 BufferedReader 每次读取 \r\n 时都转到下一行代码。有没有办法让 BufferedReader 不读取到其最大容量,而是读取到缓冲区直到 \r\n?
    • 你已经逐行阅读了。 \n 表示一行的结尾,因此 readLine() 将在那里结束。如果您想将这些行添加在一起,请执行 line + "\n";请参阅我的其他回复。
    猜你喜欢
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    相关资源
    最近更新 更多