When started, Server first Creates GUI ThreadThen creates ThreadDispatcher thread, that waits for requests on port 69.Each request is verified and then a RequestHandler thread is created for it.RequestHandler looks at request information and then passes it to RRQ or WRQ handlers. Once completed the RequestHandler becomes inactive.ThreadDispatcher continues to listen on port 69.Each client connection is stored in an ArrayList of threads, which is then used by the GUI to create Segments of each request."Offline" and "Shutdown" actions on the GUI are implemented using callbacks in the main server threads. Whilst all other GUI callbacks are handled by ServerGUI.