server.core
Class UDPListener

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

public class UDPListener
extends UDPHandler

Implémente le serveur UDP.

Lors de la création, un serveur UDP est démarré sur le port spécifié. Lorsque le thread représenté par cette classe est démarré, le serveur accepte alors les paquets UDP. Tous les transferts envoient les données vers ce socket, celui-ci se charge alors de trier les paquets entrants.

Lorsqu'un paquet est reçu, celui-ci est décodé et est transmis au transmis au transfert concerné. Le paquet est détruit s'il possède une taille invalide, ou appartient à un transfert inexistants (ID de transfert invalide).

See Also:
UDPHandler.UDP_PACKET_LENGTH

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
private  ServerScheduler scheduler
          Ordonnanceur du serveur.
 
Fields inherited from class common.UDPHandler
TIME_WAITING_SEND_PACKET_DEFAULT, UDP_DATA_LENGTH, UDP_DATA_OFFSET, UDP_PACKET_LENGTH, udpSocket
 
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
UDPListener(TransfertMaster master, ServerScheduler scheduler, int udpPort)
          Initialise un socket UDP sur le port udpPort.
 
Method Summary
 void run()
          Méthode principale du thread.
 
Methods inherited from class common.UDPHandler
doFree, doQuit
 
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.

Constructor Detail

UDPListener

public UDPListener(TransfertMaster master,
                   ServerScheduler scheduler,
                   int udpPort)
            throws SocketStartFailure
Initialise un socket UDP sur le port udpPort. Le socket ainsi créé n'accepte aucun paquet, il faut démarrer le thread pour que celui-ci traite les paquets entrants.

Parameters:
master - objet maître.
scheduler - ordonnanceur du serveur.
udpPort - port UDP du socket.
Throws:
SocketStartFailure - s'il est impossible de créer un socket sur le port spécifié.
See Also:
run()
Method Detail

run

public void run()
Méthode principale du thread. Accepte puis trie les paquets entrants.

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