> 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

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

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