public class Receiver extends Thread
{ // eigentlicher Server-Thread
protected ServerSocket Socket; // Die
Socket des Servers
protected Context Env; //
ServletContext und ServletConfig
public Receiver(int port, Context context) throws IOException
{
Socket = new ServerSocket(port); //
Erzeugen der Socket
Env = context;
}
public void run()
{
// Warten auf Requests
while (true)
{ // Endlos auf Verbindungen warten
...
while (activeCount() > 100);
// max. 100 Threads starten,
geg. warten
try
{
Socket Connect = Socket.accept();
// Verbindung annehmen
Request req = new Request(Connect, Env);
// ServletHttpRequest
Response res = new Response(Connect, req, Env);
// ServletHttpResponse
Servlet serv = Env.GetServletForURI(req.getServletPath());
// Servlet fuer
diese URI holen
serv.service(req,res);
// Verarbeitung
dem Servlet ueberlassen
}
catch (Exception e)
{ // Ganz gleich welcher Fehler
...
Env.log("Receiver: " + e );
}
}
}
}