package com.manning.nettyinaction.chapter1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
/**
* Listing 1.1 of <i>Netty in Action</i>
*
* @author <a href="mailto:norman.maurer@googlemail.com">Norman Maurer</a>
*/
public abstract class BlockingIoExample {
public void serve(int portNumber) throws IOException {
ServerSocket serverSocket = new ServerSocket(portNumber);
Socket clientSocket = serverSocket.accept();
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out =
new PrintWriter(clientSocket.getOutputStream(), true);
String request, response;
while ((request = in.readLine()) != null) {
if ("Done".equals(request)) {
break;
}
}
response = processRequest(request);
out.println(response);
}
protected abstract String processRequest(String request);
}