private Frame readFrame() throws IOException { while (!Frame.hasHeaders(buffer, 0, limit)) { int read = in.read(buffer, limit, buffer.length - limit); if (read == -1) throw new IOException("Connection closed"); limit += read; } Frame frame = new Frame(); int r = frame.read(buffer, 0, limit); limit -= r; if (limit != 0) System.arraycopy(buffer, r, buffer, 0, limit); if (frame.isComplete()) return frame; else { while (!frame.isComplete()) { frame.read(in); } return frame; } }
int k = frame.read(buffer, 0, read); if (k == 0) break;