server.core
Class TCPListener

java.lang.Object
  extended by java.lang.Thread
      extended by common.StoppableThread
          extended by common.TransfertSlave
              extended by server.core.TCPListener
All Implemented Interfaces:
Runnable

public class TCPListener
extends TransfertSlave

Implémente le serveur TCP.

Lors de la création, un serveur TCP est démarré sur le port spécifié. Lorsque le thread représenté par cette classe est démarré, le serveur accepte alors les connexions TCP.

Lorsqu'une nouvelle connexion est établie, la connexion TCP est transmise en argument à un nouveau gestionnaire de transfert qui gère ensuite l'initialisation puis le démarrage du transfert.


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
private  ServerScheduler scheduler
          Ordonnanceur du serveur.
private  ServerSocket tcpSocket
          Socket TCP.
 
Fields inherited from class common.TransfertSlave
master
 
Fields inherited from class common.StoppableThread
quitQuery
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
TCPListener(TransfertMaster master, ServerScheduler scheduler, int tcpPort)
          Initialise un socket UDP sur le port tcpPort.
 
Method Summary
protected  void doFree()
          Libère les ressources en fermant le socket TCP.
 void doQuit()
          Prends les dispositions pour que le thread termine en fermant le socket TCP.
 void run()
          Méthode principale du thread.
 
Methods inherited from class common.StoppableThread
free, quit
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

scheduler

private final ServerScheduler scheduler
Ordonnanceur du serveur.


tcpSocket

private final ServerSocket tcpSocket
Socket TCP.

Constructor Detail

TCPListener

public TCPListener(TransfertMaster master,
                   ServerScheduler scheduler,
                   int tcpPort)
            throws SocketStartFailure
Initialise un socket UDP sur le port tcpPort. Le socket ainsi créé n'accepte aucune connexion, il faut démarrer le thread pour que celui-ci accepte les nouvelles connexions.

Parameters:
master - objet maître.
scheduler - ordonnanceur du serveur.
tcpPort - port TCP.
Throws:
SocketStartFailure - s'il est impossible de créer un socket sur le port spécifié.
Method Detail

doFree

protected void doFree()
Libère les ressources en fermant le socket TCP.

Overrides:
doFree in class StoppableThread
See Also:
Thread.run(), StoppableThread.isFree, StoppableThread.free()

doQuit

public void doQuit()
Prends les dispositions pour que le thread termine en fermant le socket TCP.

Overrides:
doQuit in class StoppableThread
See Also:
Thread.run(), StoppableThread.quitQuery, StoppableThread.quit()

run

public void run()
Méthode principale du thread. Accepte les connexions TCP puis initialise un nouveau transfert.

Specified by:
run in interface Runnable
Overrides:
run in class Thread