Il est très pratique et puissant de développer des logiciels réseau avec Java. Cette puissance de Java vient de son ensemble unique d'API puissantes pour le réseau. Ces API sont une série de classes et d'interfaces, toutes situées dans le package java.net et. javax.net. Dans cet article, nous présenterons le concept de socket (Socket) et utiliserons des exemples pour illustrer comment utiliser l'API réseau pour manipuler les sockets. Après avoir terminé cet article, vous pouvez écrire un logiciel de communication réseau bas de gamme.
Qu'est-ce qu'une prise ?
L'API réseau est généralement utilisée par les programmes Java pour communiquer avec d'autres programmes basés sur des réseaux TCP/IP. L'API réseau s'appuie sur Socket pour la communication. Socket peut être considéré comme un point final dans la connexion de communication entre deux programmes. Un programme écrit une information dans le Socket, et le Socket envoie les informations à un autre Socket afin que les informations puissent être transmises à d'autres programmes. Comme le montre la figure 1
Analysons la figure 1. Le programme A sur l'hôte A écrit une information dans le Socket. Le contenu du Socket est accessible par le logiciel de gestion de réseau de l'hôte A, et ces informations sont transmises via le réseau de l'hôte A. La carte est envoyée à l'hôte B. Une fois que la carte d'interface réseau de l'hôte B a reçu ces informations, elle les envoie au logiciel de gestion de réseau de l'hôte B. Le logiciel de gestion de réseau enregistre ces informations dans le socket de l'hôte B, puis le programme B peut les enregistrer dans. le Socket. Lisez ce message.
En supposant qu'un troisième hôte, l'hôte C, soit ajouté au réseau dans la figure 1, comment l'hôte A sait-il que les informations sont correctement transmises à l'hôte B au lieu de l'hôte C ? Chaque hôte d'un réseau TCP/IP se voit attribuer une adresse IP unique. L'adresse IP est un entier non signé de 32 bits. Puisqu'elle n'est pas convertie en binaire, elle est généralement séparée par des points décimaux, tels que : 198.163.227.6. , car toutes les adresses IP vues sont composées de quatre parties, chaque partie va de 0 à 255 pour représenter une adresse de 8 bits.
Il convient de noter que les adresses IP sont toutes des adresses 32 bits, ce qui est stipulé par la version 4 du protocole IP (appelé Ipv4). Actuellement, les adresses IPv4 étant presque épuisées, les adresses IPv6 remplacent progressivement les adresses Ipv4. Les adresses IPv6 sont des entiers non signés de 128 bits.
En supposant que le deuxième programme soit ajouté à l'hôte B du réseau dans la figure 1, comment les informations transmises depuis l'hôte A peuvent-elles être correctement transmises au programme B plutôt qu'au programme nouvellement ajouté ? En effet, chaque programme basé sur la communication réseau TCP/IP se voit attribuer un port et un numéro de port uniques. Le port est un tampon d'informations utilisé pour conserver les informations d'entrée/sortie dans le Socket. Le numéro de port est un entier non signé de 16 bits. allant de 0 à 65535, pour distinguer chaque programme sur l'hôte (le numéro de port est comme un numéro de chambre dans une maison). Les numéros de port courts inférieurs à 256 sont réservés aux applications standard. Par exemple, le numéro de port de pop3 est 110. Chaque numéro de port est 110. Les sockets sont combinés en adresses IP, ports et numéros de port, de sorte que l'ensemble formé puisse distinguer chaque socket t. Parlons de deux types de sockets : les sockets de flux et les sockets de données auto-adressées.
Stream Socket
Chaque fois que vous envoyez et recevez des informations entre deux applications réseau, une connexion fiable doit être établie. Stream Socket s'appuie sur le protocole TCP pour garantir que les informations sont correctes une fois arrivées à destination. Le paquet IP peut être perdu dans le réseau ou des erreurs peuvent survenir lors de la transmission. Dans les deux cas, le TCP en tant que destinataire contactera l'expéditeur TCP pour renvoyer le paquet IP. C’est ce qu’on appelle établir une connexion fiable entre deux sockets de flux.
Ce qui précède est le contenu de Java Socket Programming (Partie 1) (1). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !