相关疑难解决方法(0)

BufferedReader readLine()块

当使用readLine()接收数据时,即使我在发送消息时使用.flush在消息末尾添加了"\n",但读取我的消息的while循环仍会阻塞.只有在关闭套接字连接时,才会离开循环.

这是客户端代码:

bos = new BufferedOutputStream(socket.
            getOutputStream());
bis = new BufferedInputStream(socket.
            getInputStream());
osw = new OutputStreamWriter(bos, "UTF-8");
osw.write(REG_CMD + "\n");
osw.flush();

isr = new InputStreamReader(bis, "UTF-8");
BufferedReader br = new BufferedReader(isr);

String response = "";
String line;

while((line = br.readLine()) != null){
   response += line;
}
Run Code Online (Sandbox Code Playgroud)

和服务器的代码:

BufferedInputStream is;
BufferedOutputStream os;

is = new BufferedInputStream(connection.getInputStream());
os = new BufferedOutputStream(connection.getOutputStream());

isr = new InputStreamReader(is);

String query= "";
String line;

while((line = br.readLine()) != null){
   query+= line;
}

String response = executeMyQuery(query); …
Run Code Online (Sandbox Code Playgroud)

java sockets bufferedreader

10
推荐指数
2
解决办法
4万
查看次数

标签 统计

bufferedreader ×1

java ×1

sockets ×1