public void process()
{
Console.WriteLine( "Processing Request..." );
// we can't use a StreamReader for input, because it buffers up extra data on us inside it's
// "processed" view of the world, and we want the data raw after the headers
inputStream = new BufferedStream( socket.GetStream() );
// we probably shouldn't be using a streamwriter for all output from handlers either
outputStream = new StreamWriter( new BufferedStream( socket.GetStream() ) );
try
{
parseRequest();
readHeaders();
if (http_method.Equals( "GET" ))
{
handleGETRequest();
}
else if (http_method.Equals( "POST" ))
{
handlePOSTRequest();
}
}
catch (Exception e)
{
Console.WriteLine( "Exception: " + e );
writeFailure();
}
outputStream.Flush();
// bs.Flush(); // flush any remaining output
inputStream = null;
outputStream = null; // bs = null;
socket.Close();
}