Maison > Article > développement back-end > Programmation de socket Java (Partie 2)(1)
Sockets auto-adressés (Datagram Sockets)
, car chaque connexion utilisant un socket stream prend un certain temps. Pour réduire cette surcharge, l'API réseau propose un deuxième type de socket : le socket auto-adressé. (socket datagramme). L'auto-adressage utilise UDP pour envoyer des informations d'adressage (du programme client au programme de service ou du programme de service au programme client). La différence est que plusieurs adresses peuvent être envoyées via des sockets d'informations IP auto-adressables. -les informations d'adressage sont incluses dans le paquet d'auto-adressage, et les paquets d'auto-adressage sont inclus dans le paquet IP, ce qui limite la longueur des informations d'adressage à 60 000 octets. La figure 2 montre les informations d'auto-adressage d'un paquet auto-adressé situé dans un paquet IP.
Différent de la façon dont TCP garantit que les informations atteignent la destination des informations, UDP fournit une autre méthode si le paquet d'informations auto-adressé n'atteint pas la destination, alors UDP ne demandera pas à l'expéditeur de renvoyer le paquet auto-adressé. est dû au fait qu'UDP contient des informations de détection d'erreur dans chaque paquet auto-adressé. Une fois que chaque paquet auto-adressé atteint la destination, UDP effectue uniquement une simple vérification d'erreur. Si la détection échoue, UDP ignorera le paquet auto-adressé. être redemandé à l'expéditeur. Ceci est similaire à l'envoi d'une lettre par la poste. L'expéditeur n'a pas besoin d'établir une connexion avec le destinataire avant d'envoyer la lettre. Il n'y a également aucune garantie que la lettre parviendra au destinataire. 🎜> Le travail de socket à adressage automatique comprend les trois classes suivantes : DatagramPacket, DatagramSocket et MulticastSocket. L'objet DatagramPacket décrit les informations d'adresse du paquet auto-adressé, le DatagramSocket représente le socket auto-adressable du programme client et du programme de service, et le MulticastSocket représente le socket auto-adressable capable de transmission multidiffusion. Ces trois classes sont localisées. dans le paquet java.net.
Classe DatagramPacket
Avant d'utiliser des paquets auto-adressés, vous devez d'abord vous familiariser avec la classe DatagramPacket. Les informations d'adresse et les paquets auto-adressés sont simultanément compressés dans l'objet créé par cette classe sous la forme de tableaux d'octets <.> DatagramPacket en a plusieurs Même si les formes de ces constructeurs sont différentes, ils ont généralement deux paramètres en commun : byte [] buffer et int length. Le paramètre buffer contient un tableau d'octets qui contient les informations de paquet auto-adressées. représente la longueur du tableau d'octets.
Le constructeur le plus simple est DatagramPacket(byte [] buffer, int length). Ce constructeur détermine le tableau de paquets de données auto-adressés et la longueur du tableau, mais n'a aucune information sur l'adresse et le port des données auto-adressées. paquet. Ces informations peuvent être ajoutées ultérieurement en appelant les méthodes setAddress(InetAddress addr) et setPort(int port).
byte [] buffer = nouvel octet [100];
DatagramPacket dgp = new DatagramPacket (buffer, buffer.length);
InetAddress ia = InetAddress.getByName ("www.disney.com");
dgp.setAddress (ia);
dgp.setPort (6000); // Envoyer un paquet de datagramme au port 6000.
Ce qui précède est le contenu de la programmation Java Socket (partie 2) (1) , Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !