Bonjour,
je cherche à ré-écrire une application (écrite en PHP) en Java. Voici comment j'ai conçu l'appli pour le langage PHP :

  1. Récupération dans un fichier de configuration de l'ensemble des protocoles à gérer ainsi que des ports d'écoute associés (eg: ftp => 21, http => 80 etc...)
  2. Pour chacun des ports, ouverture d'un socket d'écoute.
  3. Création d'une boucle infinie (eg: while(true)) qui :
    • Accepte les connections sur le port d'écoute, lui attribut un nouveau port et créer une nouvelle session correspondant (new session($socket)).
    • Traite les actions liées aux sessions (function iterate()).
  4. Fermeture de tous les sockets encore ouverts.

Ensuite ces 4 étapes sous enfermés dans une boucle infinie.

Concernant l'objet session appelé par la classe server, il se limite à une serie de méthodes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
class session {
   private $sock; // Socket d'écoute
   private $data; // Socket de données pour les connection passives (eg: FTP)
   private $pasv; // Booleen (true:mode passif;false:mode actif)
   private $tt; // Tranfert Type (Binaire ou ASCII)
   private function __construct($sock) // Stocke le socket $sock dans la varible $this->sock;
   private function open() // Ouvre un nouveau socket
   private function read() // Lit le données
   private function write() // Ecrit la reponse
   private function close() // Ferme la session
   private function error() // Error handler
   public function iterate() // Gère les réactions de l'object
//...
}
Enfin pour chaque protocol supporté, une nouvelle classe session_{protocol} étend les fonctionnalité de la classe session en suchargeant la function iterate().