Maison >Java >javaDidacticiel >Programmation de sockets en Java

Programmation de sockets en Java

WBOY
WBOYoriginal
2024-08-30 16:27:371019parcourir

Le World Wide Web et Internet ont changé notre façon de vivre et de communiquer les uns avec les autres, ainsi que la façon dont nous menons la science, l'ingénierie et le commerce. La vie moderne est entièrement régie ou centrée autour d’Internet. Les entreprises recherchent continuellement de nouvelles façons de produire et de communiquer avec divers services d'une nouvelle manière introduisant l'innovation. Dans cet article, nous discuterons de la programmation Socket en Java.

Les sockets fournissent une interface pour programmer les réseaux de la couche transport du modèle OSI. Les communications réseau utilisant des sockets sont omniprésentes sur Internet. De plus, un programme socket écrit en Java peut communiquer avec un programme socket écrit dans un langage non Java comme C, C++, Python, etc.

PUBLICITÉ Cours populaire dans cette catégorie LANGUAGES DE PROGRAMMATION - Spécialisation | 54 séries de cours | 4 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Méthodes de classe Socket

Les méthodes de classe Socket se trouvent en Java. Un socket est forcément un numéro de port afin que le TCP reconnaisse le numéro de port dans lequel les données doivent être envoyées. Java fournit un ensemble de classes, dont java.net. Ceci est utilisé pour le développement rapide d’applications réseau. Les classes clés, interfaces et exceptions présentes dans le package java.net simplifient la complexité impliquée dans la création de programmes client et serveur :

Les cours sont :

  • Gestionnaire de contenu
  • Paquet de datagramme
  • Douille de datagramme
  • Datagramme Socket Imp 1
  • Connexion URL HTTP
  • J'ai une adresse Internet
  • Prise multidiffusion
  • Prise serveur
  • Prise
  • Socket Imp 1
  • URL
  • Connexion URL
  • Encodeur d'URL
  • Gestionnaire de flux d'URL

Les interfaces sont :

  • Usine de gestionnaires de contenu
  • Carte des noms de fichiers
  • Usine d'impl de socket
  • Usine de gestionnaires de flux d'URL

Les exceptions sont :

  • Lier une exception
  • Connecter l'exception
  • Exception d'URL mal formée
  • Aucune exception de route vers l'hôte
  • Exception au protocole
  • Exception de prise
  • Exception d'hôte inconnu
  • Exception de service inconnue

Programmation de socket TCP/IP

Il existe deux classes utilisées dans le package java.net qui sont utilisées dans la création de programmes.

  • Prise serveur
  • Prise

Un programme serveur communique via des flux d'entrée et de sortie. S'il y a une demande de connexion, alors il y a une nouvelle socket qui entre en jeu, et voici une connexion établie avec elle.

Programmation de sockets en Java

Méthode 1 – Création d'un programme de socket serveur

Il existe différentes étapes pour créer un programme de socket serveur en Java.

Les étapes simples de création d'un programme de socket serveur sont les suivantes :

Étape 1 : Le serveur Socket est ouvert.

Server Socket General= new Server Socket(PO)

Ici PO est le numéro de port.

Ici, le numéro de port est attribué au réseau de serveurs à travers lequel il communiquera à l'aide des flux d'entrée/sortie.

Étape 2 : Il y a une demande client pour laquelle nous devons attendre patiemment.

Socket General= server. accept()

Voici le serveur. accept() attend le client, et le nom du socket est Client ici.

Étape 3 : Les flux d'E/S sont créés afin qu'une connexion soit établie

Flux d'entrée de données

is = new Data Input Stream(client. Get Input Stream());

Flux de sortie de données

os = new Data Output Stream(client. get Output Stream());

Le flux d'entrée et le flux de sortie se voient attribuer leur Get Input Stream(), et ils sont appelés respectivement.

Étape 4 : Le contact avec le client est créé.

Recevoir du client :

string hello = br. Read Line();

Envoyez-le au client :

br. Write Bytes("How are you\n");

Le code suivant communique avec le client recevant et envoyant à un client les demandes.

Étape 5 : Enfin, le Socket est amené à quitter.

Enfin, la fonction fermer la socket permet de fermer et de terminer la programmation de la socket.

Un exemple simple de socket serveur est présenté ci-dessous :

Un programme simple pour connecter le serveur.

Code :

import java.net.*;
import java.io.*;
public class SimpleMachine {
public static void main(String args[]) throws IOException {
// On port 1362 server port is registered
ServerSocket soc = new ServerSocket(1362);
Socket soc1=soc.accept(); // Link is accepted after waiting
// Linked with the socket there should be a connection
OutputStream s1out = soc1.getOutputStream();
DataOutputStream dosH = new DataOutputStream (s1out);
// A string command is sent
dosH.writeUTF("Hello how are you");
// The connection can be closed but the server socket cannot.
dosH.close();
s1out.close();
soc1.close();         }
}

Méthode 2 – Création d'un programme de socket serveur simple

Nous allons maintenant voir un programme client simple en Java.

Les étapes de création d'un programme client simple en Java sont présentées ci-dessous :

Étape 1 : L'objet Socket est créé.

Socket client= new Socket(server, port_id)

Le serveur et l'ID de port sont connectés ; c'est-à-dire que le serveur est connecté à l'ID de port.

Étape 2 : Les flux d'entrée/sortie sont créés.

is = new Data Input Stream(client.getInputStream());
os = new Data Output Stream(client.getOutputStream());

Le flux d'entrée est et le système d'exploitation du flux de sortie est utilisé pour communiquer avec le client.

Step 3: Input/Output streams are made for talking to the Client.

Data is read from the server:

string hello = br. readLine();

Send data to the server:

br.writeBytes("How are you\n")

This step communicates with the server. The input stream and output stream both communicates with the server.

Step 4: Close the Socket when done.

This function will close the client when it is finally done.

An example of a simple server socket program is shown below.

A simple program for the client.

Code:

import java.net.*;
import java.io.*;
public class SimpleMachineClient {
public static void main(String args[]) throws IOException
{
// At port 1325, connection to the server is opened
Socket s1H = new Socket("host",1325);
// Read the input stream by getting an input file from the socket
Input Stream s1I = s1. getInputStream();
Data Input Stream disH = new Data Input Stream(s1In);
String str = new String (disH.readUTF());
System.out.println(str);
// After it is done, we can close the connection.
disH.close();
s1I.close();
s1H.close();
}
}

Conclusion

Socket programming is beneficial in Java and in any other programming language. A program written in Java can connect with a program written in C or C++. In other words, the language of the socket program doesn’t matter when there has to be a connection between the two. In this article, we have basically seen the Simple Server and the Simple Client example where there is a connection between the server socket and in the other, there is a connection between the server socket. We have used TCP/IP programming for the same. However, there are a lot of programming techniques like UDP programming techniques and URL programming techniques. We have not seen examples of such in this article. We have stressed on TCP/IP programming technique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn