最近在学socket的网络编程,但遇到了一点问题,就是每次循环从缓冲区读数据时,如果缓冲区没有数据,这时候read方法会堵塞,此时也没有办法输入了。后来发现了主要有两种解决方法:
这是最初会阻塞的代码
后来就用了读写分离
class read implements Runnable{ BufferedReader bufferedReader; read(BufferedReader bufferedReader){ this.bufferedReader = bufferedReader; } @SneakyThrows @Override public void run() { String info; while((info = bufferedReader.readLine())!=null){ System.out.println(info); } } }
就解决了堵塞