recherche
MaisonJavajavaDidacticielProgrammation de socket Java (Partie 1)(1)

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) !


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
带你搞懂Java结构化数据处理开源库SPL带你搞懂Java结构化数据处理开源库SPLMay 24, 2022 pm 01:34 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

Java集合框架之PriorityQueue优先级队列Java集合框架之PriorityQueue优先级队列Jun 09, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

完全掌握Java锁(图文解析)完全掌握Java锁(图文解析)Jun 14, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

一起聊聊Java多线程之线程安全问题一起聊聊Java多线程之线程安全问题Apr 21, 2022 pm 06:17 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

详细解析Java的this和super关键字详细解析Java的this和super关键字Apr 30, 2022 am 09:00 AM

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

Java基础归纳之枚举Java基础归纳之枚举May 26, 2022 am 11:50 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

java中封装是什么java中封装是什么May 16, 2019 pm 06:08 PM

封装是一种信息隐藏技术,是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法;封装可以被认为是一个保护屏障,防止指定类的代码和数据被外部类定义的代码随机访问。封装可以通过关键字private,protected和public实现。

归纳整理JAVA装饰器模式(实例详解)归纳整理JAVA装饰器模式(实例详解)May 05, 2022 pm 06:48 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于设计模式的相关问题,主要将装饰器模式的相关内容,指在不改变现有对象结构的情况下,动态地给该对象增加一些职责的模式,希望对大家有帮助。

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux