private void StartListening()
{
while (true)
{
using (IClientSocket clientSocket = new ClientSocket(ListeningSocket.Accept()))
{
Log.Debug("Received request from " + clientSocket.RemoteEndPoint);
Log.Debug(DateTime.Now + " " + clientSocket.Available + " request bytes available");
int bytesReceived = DetermineBytesReceived(clientSocket.Available);
if (bytesReceived > 0)
{
byte[] buffer = clientSocket.Receive(bytesReceived); // Buffer probably should be larger than this.
using (var r = new Request(clientSocket, Encoding.UTF8.GetChars(buffer)))
{
r.ProcessRequestHeader();
Log.Debug(DateTime.Now + " " + r.URL);
if (_requestReceived != null) _requestReceived(r);
}
}
}
// I always like to have this in a continuous loop. Helps prevent lock-ups
Thread.Sleep(10);
}
}