一个Java程序通过Socket建立了一个到远程服务器的网络连接,并使用BufferedWriter向服务器发送数据,同时使用BufferedReader从服务器读取数据。如果服务器突然关闭连接,但客户端在写入后尝试读取服务器数据,下列关于客户端程序的状态描述最准确的是:

答案解析

此题考察网络编程中Socket的异常处理。A选项错误,read()方法在连接中断时不会返回null,因为null通常表示读取到流的末尾,而中断是异常情况;B选项正确,当网络连接断开时,BufferedReader的read()方法会抛出IOException,表示读取失败,这是一种明确的错误信号;C选项错误,当网络连接在写入时未断开,写入不会抛出异常;D选项错误, 虽然read()会阻塞,但是由于服务器端已经关闭连接,BufferedReader会抛出IOException而非一直阻塞等待,不会造成永久阻塞。本题的关键在于理解服务器断开连接后,客户端的BufferedReader会抛出异常而非返回null。
正确答案:B
随机推荐
开始刷题