> Tech > Se connecter, côté serveur

Se connecter, côté serveur

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

La classe CustomerHostServer étend la classe ServerSocket de Java, ce qui fait de la classe CustomerHostServer elle-même un serveur sockets. Le fait d'étendre la classe ServerSocket facilite considérablement le coding de l'application serveur. Dans la méthode main de la classe CustomerHostServer, un nouvel objet CustomerHostServer est instancié, à  l'écoute du

port 8500.



server = new CustomerHostServer(8500);



Ensuite, nous commençons une boucle while sans fin, à  l’intérieur de laquelle
l’objet serveur nouvellement créé est défini pour attendre les connexions client
en appelant la méthode accept :



while(true) {

CustomerHostSocket socket =

(CustomerHostSocket)server.accept();

socket.start();


}



Le nombre de threads supportés par le système d’exploitation détermine
la limite globale des connexions client dans cette application



Le résultat d’une connexion client réussie est un objet du type CustomerHostSocket
renvoyé par la méthode accept. Les communications sockets se font au travers de
cet objet, qui est une sous-classe de la classe Socket de Java. Dès qu’un client
contacte le serveur, l’objet CustomerHostSocket est démarré. La classe CustomerHostSocket
est multithread, de sorte que la prochaine itération de la boucle while puisse
se dérouler immédiatement et que le serveur puisse reprendre l’attente sur la
méthode accept pour un autre client. Si 100 clients se connectent au serveur,
100 objets CustomerHostSocket sont créés et démarrés, chacun s’exécutant dans
son propre thread.



Il faut savoir que le nombre de threads supportés par le système d’exploitation
détermine la limite globale des connexions client dans cette application. Un seul
job AS/400, comme notre serveur sockets, peut contenir des dizaines de milliers
de threads séparés.



Pour que la méthode accept renvoie une instance de la classe socket personnalisée
CustomerHostSocket, la classe CustomerHostServer doit remplacer la méthode accept
de la classe ServerSocket de la base. Les détails de la méthode accept remplacée
sont fondamentaux dans ce modèle, qui étend les ServerSocket et Socket de Java.
Voici le code complet de la méthode accept remplacée :



PUBLIC Socket accept() throws IOException {

CustomerHostSocket s =

new CustomerHostSocket();

implAccept(s);

return s;


}



La méthode accept remplacée contient du code pour instancier un nouveau CustomerHostSocket.
Il ne faut pas être troublé par l’appel de la méthode implAccept. L’architecture
du support socket de Java offre la méthode implAccept comme moyen facile d’exécuter
le mécanisme binding socket de la mise en oeuvre de la plate-forme. La méthode
implAccept admet comme paramètre une instance de la classe Socket. Rappelons que
la méthode accept se bloque normalement jusqu’à  ce qu’une connexion client soit
faite. Quand on passe à  la méthode implAccept une instance de la classe Socket
ou, comme dans ce cas une sous-classe de la classe Socket, la méthode implAccept
est l’endroit où le serveur attend une connexion client. Quand la méthode implAccept
renvoie l’objet socket que l’on a passé, une connexion avec un client est établie

Téléchargez cette ressource

Percer le brouillard des rançongiciels

Percer le brouillard des rançongiciels

Explorez les méandres d’une investigation de ransomware, avec les experts de Palo Alto Networks et Unit 42 pour faire la lumière dans la nébuleuse des rançongiciels. Plongez au cœur de l’enquête pour comprendre les méthodes, les outils et les tactiques utilisés par les acteurs de la menace. Découvrez comment prévenir les attaques, les contrer et minimiser leur impact. Des enseignements indispensables aux équipes cyber.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010