private void serveRequests( Socket socket ) throws IOException { socket.setSoTimeout( _socketTimeout ); socket.setTcpNoDelay( true ); debug( "Created server thread " + socket.getInetAddress() + ':' + socket.getPort() ); final BufferedInputStream inputStream = new BufferedInputStream( socket.getInputStream() ); final HttpResponseStream outputStream = new HttpResponseStream( socket.getOutputStream() ); try { while (_active) { HttpRequest request = new HttpRequest( inputStream ); boolean keepAlive = respondToRequest( request, outputStream ); if (!keepAlive) break; while (_active && 0 == inputStream.available()) { try { Thread.sleep( INPUT_POLL_INTERVAL ); } catch (InterruptedException e) {} } } } catch (IOException e) { outputStream.restart(); outputStream.setProtocol( "HTTP/1.0" ); outputStream.setResponse( HttpURLConnection.HTTP_BAD_REQUEST, e.toString() ); } debug( "Closing server thread" ); outputStream.close(); socket.close(); debug( "Server thread closed" ); }
private void serveRequests( Socket socket ) throws IOException { socket.setSoTimeout( _socketTimeout ); socket.setTcpNoDelay( true ); debug( "Created server thread " + socket.getInetAddress() + ':' + socket.getPort() ); final BufferedInputStream inputStream = new BufferedInputStream( socket.getInputStream() ); final HttpResponseStream outputStream = new HttpResponseStream( socket.getOutputStream() ); try { while (_active) { HttpRequest request = new HttpRequest( inputStream ); boolean keepAlive = respondToRequest( request, outputStream ); if (!keepAlive) break; while (_active && 0 == inputStream.available()) { try { Thread.sleep( INPUT_POLL_INTERVAL ); } catch (InterruptedException e) {} } } } catch (IOException e) { outputStream.restart(); outputStream.setProtocol( "HTTP/1.0" ); outputStream.setResponse( HttpURLConnection.HTTP_BAD_REQUEST, e.toString() ); } debug( "Closing server thread" ); outputStream.close(); socket.close(); debug( "Server thread closed" ); }
private void serveRequests( Socket socket ) throws IOException { socket.setSoTimeout( _socketTimeout ); socket.setTcpNoDelay( true ); debug( "Created server thread " + socket.getInetAddress() + ':' + socket.getPort() ); final BufferedInputStream inputStream = new BufferedInputStream( socket.getInputStream() ); final HttpResponseStream outputStream = new HttpResponseStream( socket.getOutputStream() ); try { while (_active) { HttpRequest request = new HttpRequest( inputStream ); boolean keepAlive = respondToRequest( request, outputStream ); if (!keepAlive) break; while (_active && 0 == inputStream.available()) { try { Thread.sleep( INPUT_POLL_INTERVAL ); } catch (InterruptedException e) {} } } } catch (IOException e) { outputStream.restart(); outputStream.setProtocol( "HTTP/1.0" ); outputStream.setResponse( HttpURLConnection.HTTP_BAD_REQUEST, e.toString() ); } debug( "Closing server thread" ); outputStream.close(); socket.close(); debug( "Server thread closed" ); }