Programmation de socket dans est utilisé pour la communication entre les applications qui s'exécutent sur différents . Il peut être orienté connexion ou sans connexion. Dans l'ensemble, une socket est un moyen d'établir une connexion entre un client et un serveur. Dans cet article, je vais vous dire tout sur la programmation de socket.
Les sujets ci-dessous sont traités dans cet article:
- Qu'est-ce que la programmation Socket en Java?
- Qu'est-ce qu'un socket en Java?
- Programmation côté client
- Programmation côté serveur
Qu'est-ce que la programmation Socket en Java?
Programmation de socket est un moyen de connecter deux nœuds sur un réseau pour communiquer entre eux. Un prise (nœud) écoute sur un port particulier à une adresse IP, tandis que d'autres prise tend la main à l'autre pour établir une connexion.
Le serveur forme l'auditeur prise tandis que le client atteint le serveur. Socket et socket serveur sont utilisés pour la programmation de socket orientée connexion.
Voyons maintenant le concept de base de la programmation de socket, c'est-à-dire un socket.
Qu'est-ce qu'un socket en Java?
À prise dans est un point final d'une liaison de communication bidirectionnelle entre deux programmes exécutés sur le réseau. UNE prise est lié à un numéro de port afin que la couche TCP puisse identifier l'application à laquelle les données sont destinées à être envoyées.
Un point de terminaison est une combinaison d'une adresse IP et d'un numéro de port. Le package de la plate-forme Java fournit une classe,Prisequi implémente un côté d'une connexion bidirectionnelle entre votre programme Java et un autre programme sur le réseau. La classe se trouve au-dessus d'une implémentation dépendante de la plate-forme, cachant les détails de tout système particulier à votre programme Java. En utilisant la classe au lieu de s'appuyer sur du code natif, votre peut communiquer sur le réseau de manière indépendante de la plate-forme.
Maintenant que vous savez ce qu'est Socket en Java, allons plus loin et comprenons comment le client communique avec le serveur et comment le serveur répond.
Programmation côté client
Dans le cas de la programmation côté client, le client attendra d'abord que le serveur démarre. Une fois que le serveur est opérationnel, il enverra les requêtes au serveur. Après cela, le client attendra la réponse du serveur. C'est donc toute la logique de la communication client-serveur. Voyons maintenant en détail la programmation côté client et côté serveur.
Afin de lancer une demande client, vous devez suivre les étapes ci-dessous:
1. Établir une connexion
trier un tableau c ++
La toute première étape consiste à établir une connexion socket. Une connexion socket implique que les deux machines disposent d'informations sur l'emplacement réseau (adresse IP) et le port TCP de l'autre.
Vous pouvez créer un socket à l'aide d'une instruction ci-dessous:
Socket socket = nouveau Socket ('127.0.0.1', 5000)
Ici, le premier argument représente le Adresse IP du serveur .
Le deuxième argument représente le Port TCP . (C'est un nombre qui représente quelle application doit s'exécuter sur un serveur.)
2. Communication
Afin de communiquer via une connexion socket, les flux sont utilisés à la fois pour l'entrée et la sortie des données. Après avoir établi une connexion et envoyé les demandes, vous devez fermer la connexion.
3. Fermeture de la connexion
La connexion socket est fermée explicitement une fois que le message au serveur est envoyé.
exemple d'arguments de ligne de commande java
Voyons maintenant comment écrire un programme Java pour implémenter une connexion socket côté client.
// Un programme Java pour une importation ClientSide java.net. * Import java.io. * public class ClientProgram {// initialise le socket et les flux de sortie d'entrée private Socket socket = null private DataInputStream input = null private DataOutputStream out = null // constructeur pour mettre l'adresse IP et le port public Client (String address, int port) {// établir une connexion try {socket = new Socket (address, port) System.out.println ('Connected') // prend l'entrée du terminal input = new DataInputStream (System.in) // envoie la sortie au socket out = new DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // chaîne pour lire le message depuis l'entrée String line = '' // continuez à lire jusqu'à ce que 'Over' soit entré while (! line.equals ('Over')) {try {line = input.readLine ( ) out.writeUTF (line)} catch (IOException i) {System.out.println (i)}} // ferme la connexion try {input.close () out.close () socket.close ()} catch (IOException je ) {System.out.println (i)}} public static void main (String args []) {Client client = new Client ('127.0.0.1', 5000)}}
Maintenant, implémentons la programmation côté serveur, puis arrivons à la sortie.
Programmation côté serveur
Fondamentalement, le serveur instanciera son objet et attendra la demande du client. Une fois que le client envoie la demande, le serveur communiquera de nouveau avec la réponse.
Afin de coder l'application côté serveur, vous avez besoin de deux sockets et ils sont les suivants:
À ServerSocket qui attend les demandes du client (quand un client fait un nouveau Socket ())
Un simple vieux prise pour la communication avec le client.
Après cela, vous devez communiquer avec le client avec la réponse.
la communication
getOutputStream () est utilisée pour envoyer la sortie via le socket.
Fermer la connexion
Il est important de fermer la connexion en fermant le socket ainsi que les flux d'entrée / sortie une fois que tout est fait.
Voyons maintenant comment écrire un programme Java pour implémenter une connexion socket côté serveur.
// Un programme Java pour une importation Serverside java.net. * Import java.io. * public class ServerSide {// initialiser le socket et le flux d'entrée private Socket socket = null private ServerSocket server = null private DataInputStream in = null // constructeur avec port public Server (int port) {// démarre le serveur et attend une connexion try {server = new ServerSocket (port) System.out.println ('Server started') System.out.println ('Waiting for a client .. . ') socket = server.accept () System.out.println (' Client allowed ') // prend l'entrée du socket client dans = new DataInputStream (new BufferedInputStream (socket.getInputStream ())) String line =' '/ / lit le message du client jusqu'à ce que 'Over' soit envoyé while (! line.equals ('Over')) {try {line = in.readUTF () System.out.println (line)} catch (IOException i) {System. out.println (i)}} System.out.println ('Closing connection') // fermer la connexion socket.close () in.close ()} catch (IOException i) {System.out.println (i)}} public static void main (String args []) { Serveur serveur = nouveau serveur (5000)}}
Après avoir configuré à la fois le client et le serveur, vous pouvez d'abord exécuter le programme côté serveur. Après cela, vous devez exécuter le programme côté client et envoyer la demande. Dès que la demande est envoyée du côté client, le serveur répondra. Ci-dessous, l'instantané représente la même chose.
1. Lorsque vous exécutez le script côté serveur, il démarre et attend que le client démarre.
2. Ensuite, le client se connecte et entre la demande sous la forme d'une chaîne.
cast double en int en java
3. Lorsque le client envoie la demande, le serveur répondra.
C’est ainsi que vous devez exécuter un programme socket en Java. Vous pouvez également exécuter ces programmes sur une fenêtre de terminal ou une invite de commande. Mais, comme Eclipse est bien avancé avec ses fonctionnalités, vous pouvez simplement exécuter les deux programmes sur une console.
Cela nous amène à la fin de l'article sur la programmation de socket en Java. J'espère avoir mis en lumière vos connaissances sur Programmation de socket.
Vérifiez par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Nous sommes là pour vous aider à chaque étape de votre voyage, pour devenir une autre question d'entrevue java, nous proposons un programme conçu pour les étudiants et les professionnels qui souhaitent devenir développeur Java.
Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de cet article «Programmation de socket en Java» et nous vous répondrons dans les plus brefs délais.