多肉啊~ 2022-11-21 16:32 采纳率: 57.1%
浏览 4
已结题

Android tcp通信时readLine阻塞问题

快被readLine()给坑死了,服务器发送到客户端的消息顺顺利利的,怎么从服务器端读回来的时候,就一直读不出来呢,加了换行符也是无动于衷哪位能帮我改改代码,在我的基础上修改readLine(),特喵的,找一些csdn上面的方法,在我这行不通啊。

case R.id.submit:
                //TODO 把数据提交的方式写在这里
                        new Thread(new Runnable() {
                            @Override
                            public void run() {
                                String message1 = projName1.getText().toString();
                                try {
                                    socket = new Socket("192.168.3.50",777); //IP地址、端口号
                                    //向服务器发送消息
                                    out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8")), true);
                                    out.write(message1);
                                    out.flush();
                                    //接收服务器的消息
                                    br = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));
                                    String info = null;
                                    while ((info = br.readLine())!=null){
                                         projName1.setText(info);
                                    }
                                    //关闭资源
                                    br.close();
                                    out.close();
                                    socket.close();
                                } catch (IOException e) {
                                 e.printStackTrace();
                                }
                            }
                        }).start();
                        break;
            }
        }
  • 写回答

2条回答 默认 最新

  • 立青_ 2022-11-21 20:14
    关注

    如果你只是需要接收一条数据就行了,不要一直接收数据,那就不用行读取,改成字节读取

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月21日
  • 创建了问题 11月21日