Java: Socket API (Υποδοχές)

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Advertisements

Υλοποίηση Συστήματος Ψηφοφορίας με τη χρήση Java RMI
Διαδίκτυο Κίκα Χρυσοστόμου.
Ιστορία του Ιντερνετ.
TCP/IP Networks (2).
ΠΜΣ ΔΥΝΗΤΙΚΕΣ ΚΟΙΝΟΤΗΤΕΣ
ΕΙΣΑΓΩΓΗ ΣΤΑ ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΑΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ
Ανάπτυξη Δικτύων Καθηγητής: Φουληράς Παναγιώτης
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ενότητα Β: Εισαγωγή στο Διαδίκτυο Κουμπή Βασιλάντα, Ph.D, MSc.
Uniform Resource Locators (URLs) Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World Wide Web) Στη Java,
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 19 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
ΜΟΝΤΕΛΟ ΕΞΥΠΗΡΕΤΟΥΜΕΝΟΥ – ΕΞΥΠΗΡΕΤΗΤΗ ( CLIENT – SERVER )
ΕΡΓΑΛΕΙΟ ΠΑΡΑΓΩΓΗΣ ΠΕΡΙΕΧΟΜΕΝΟΥ ΣΕ WEB SITE (CONTENT MANAGEMENT TOOL)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤCP/IP Τι είναι; Σύντομο Ιστορικό
Κεφάλαιο 11.2 Sockets.
Υπηρεσίες δικτύων επικοινωνίας
7.7 Πρωτόκολλο ARP Δίκτυα Υπολογιστών ΙΙ.
©Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901
Κατανεμημένα Συστήματα με Java Ενότητα # 8: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής.
Διαχείριση Δικτύων Ευφυή Δίκτυα Άσκηση 2: Ανάλυση Δικτυακής Κίνησης – Πρωτοκόλλων - Υπηρεσιών Εργαστήριο Διαχείρισης και Βέλτιστου Σχεδιασμού Δικτύων (NETMODE)
Μεταγωγή (Switching) Πως σχηματίζουμε διαδίκτυα. Περίληψη Μεταγωγή Κυκλωμάτων (Circuit switching) Μεταγωγή Πακέτων (Packet switching) Μεταγωγή Εικονικών.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Δίκτυα Ηλεκτρονικών Υπολογιστών
Μεταγωγή (Switching) Πως σχηματίζουμε διαδίκτυα. Περίληψη Μεταγωγή Κυκλωμάτων (Circuit switching) Μεταγωγή Πακέτων (Packet switching) Μεταγωγή Εικονικών.
Παράρτημα: Υπηρεσίες Δικτύων bcircuit - packet switching bConnection - connectionless.
Κ.Ε.Κ ΜΕΝΤΩΡ ΕΚΠΑΙΔΕΥΤΙΚΗ A.E. ΤΙΤΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΚΑΤΑΡΤΙΣΗΣ ΣΥΓΧΡΟΝΕΣ ΕΦΑΡΜΟΓΕΣ ΠΑΚΕΤΩΝ ΛΟΓΙΣΜΙΚΟΥ.
HY-335 : Δίκτυα Υπολογιστών DHCP Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χειμερινό εξάμηνο
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Τεχνολογία TCP/IP TCP/IP internet είναι ένα οποιοδήποτε δίκτυο το οποίο χρησιμοποιεί τα πρωτόκολλα TCP/IP. Διαδίκτυο (Internet) είναι το μεγαλύτερο δίκτυο.
Κεφάλαιο 11.1 Uniform Resource Locators (URLs). Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World.
Τι κρατάει το Internet μαζί? 1. Η διευθυνσιοποίηση (addressing): πως δηλ. αναφερόμαστε σε μια μηχανή στο δίκτυο. 2. Η δρομολόγηση (routing): πως να φτάσουμε.
Σύνοψη 1 Αρχές διαδικτύου 1.1 Αναδρομή – εισαγωγή
Διευθυνσιοδότηση.
Υποθέστε τρία τοπικά δίκτυα LAN όπως στο παρακάτω σχήμα.
Διαχείριση Δικτύων Ευφυή Δίκτυα Άσκηση 4: Ανάλυση Δικτυακής Κίνησης – Πρωτοκόλλων - Υπηρεσιών Εργαστήριο Διαχείρισης και Βέλτιστου Σχεδιασμού Δικτύων (NETMODE)
Κωνσταντίνος Αντωνής © 2014Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Ζητήματα Σχεδίασης Λογισμικού Πελάτη 1.
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ). 2 Εξοικείωση με πρωτόκολλο TCP Connection Oriented Αξιοπιστία στην παράδοση Σειρά Καθυστερήσεις Χαρακτηριστικά.
Κεφάλαιο 7 Διαδικτύωση-Internet 7.3 Πρωτόκολλο TCP.
Κεφάλαιο 7 Διαδικτύωση-Internet 7.5 Πρωτόκολλο ΙΡ (Internet Protocol)
Δίκτυα Επικοινωνιών Ενότητα # 5: Επίπεδο Δικτύου Διδάσκων: Θεόδωρος Αποστολόπουλος Τμήμα: Πληροφορικής.
Κεφάλαιο 7 Διαδικτύωση-Internet 7.8 Σύστημα ονομάτων περιοχών (DNS)
To πρωτόκολλο διαδικτύου IP -χρησιμοποιείται από αποστολέα και παραλήπτη που μπορεί να βρίσκονται σε διαφορετικά δίκτυα για να ανταλλάξουν πακέτα πληροφοριών.
ΕΙΔΙΚΑ ΘΕΜΑΤΑ ΣΕ ΚΙΝΗΤΑ ΚΑΙ ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ ΙΩΑΝΝΑ ΚΑΛΛΗ (761) ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΑΡΑΡΤΗΜΑ ΑΓΡΙΝΙΟΥ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΟΛΙΤΙΣΜΙΚΟΥ.
Δίκτυα Υπολογιστών Ι.
Προχωρημένα Θέματα Δικτύων
Κατανεμημένα Συστήματα
Secure Sockets Layer (SSL)
Κεφάλαιο 4. Επίπεδο μεταφοράς
Κατανεμημένα Συστήματα
Δίκτυα Επικοινωνιών Ενότητα # 6: Επίπεδο Μεταφοράς TCP/UDP
TCP/IP.
Κεφάλαιο 7 Διαδικτύωση-Internet
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ)
Ειδικά Θέματα σε Κινητά & Ασύρματα Δίκτυα
ΤΟΠΟΛΟΓΙΕΣ KAI ΜΟΝΑΔΕΣ ΔΙΑΣΥΝΔΕΣΗΣ ΤΟΠΙΚΩΝ ΔΙΚΤΥΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
Κεφάλαιο 7: Διαδικτύωση-Internet
Κεφάλαιο 7: Διαδικτύωση-Internet
Λύσεις Ασφάλειας στο Επίπεδο Διασύνδεσης
Κεφάλαιο 7: Διαδικτύωση-Internet Μάθημα 7.9: Δρομολόγηση
Κεφάλαιο 7: Διαδικτύωση-Internet
Κεφάλαιο 7:Διαδικτύωση-Internet
Κεφάλαιο 7: Διαδικτύωση-Internet
Κεφάλαιο 4. Επίπεδο μεταφοράς
Κεφάλαιο 10 Streams.
Το Διαδίκτυο - Internet
Παράρτημα: Υπηρεσίες Δικτύων
Μεταγράφημα παρουσίασης:

Java: Socket API (Υποδοχές) Όνομα φοιτητή: Ηλίας Χατζηκυριάκου Α.Μ: 144/06 Όνομα καθηγητή: Παναγιώτης Φουληράς

Τι είναι μια υποδοχή; Ένας διακομιστής (server) τρέχει σε ένα συγκεκριμένο υπολογιστή και έχει μια υποδοχή, η οποία είναι συνδεδεμένη με έναν συγκεκριμένο αριθμό θύρας(port number). Ο διακομιστής απλά περιμένει στην θύρα αυτή για κάποιον client μέχρι να γίνει κάποια αίτηση σύνδεσης. Από την πλευρά του server: Ο client γνωρίζει το hostname του μηχανήματος που τρέχει ο server και την θύρα που ακούει ο server. Για να γίνει μια αίτηση σύνδεσης, ο client στέλνει μια αίτηση σύνδεσης στο server στην συγκεκριμένη θύρα. Επίσης o client πρέπει να προσδιορίσει τον εαυτό του στον server έτσι ώστε να συνδεθεί σε μια τοπική θύρα, συνήθως προσδιορισμένη από το Λ.Σ.

Διαχωρισμός των υποδοχών Tο πρώτο είδος υποδοχής ονομάζεται TCP ( Transmission Control Protocol ) socket και είναι μια υπηρεσία προσανατολισμένη στην σύνδεση ( connection-oriented service ). Μπορούμε να το θεωρήσουμε ανάλογο της τηλεφωνικής υπηρεσίας, στην οποία, μετά την εγκαθίδρυση μιας σύνδεσης μεταξύ δύο συνομιλητών, αυτή χρησιμοποιείται μέχρι το πέρας της συζητήσεως τους. Το άλλο είδος ονομάζεται UDP (Unreliable Datagram Protocol ) socket και είναι μια υπηρεσία χωρίς σύνδεση ( connectionless service ). To ανάλογο, σε αυτήν την περίπτωση, είναι το ταχυδρομείο : μπορούμε να στείλουμε πολλά πακέτα στον ίδιο παραλήπτη, αλλά δεν είναι σίγουρο ότι όλα θα ακολουθήσουν την ίδια διαδρομή ( … σύνδεση ) για να φτάσουν στον προορισμό τους.

Σημαντικές διαφορές TCP-UDP 1) Tα TCP sockets εξασφαλίζουν μια αξιόπιστη μεταφορά της πληροφορίας : ότι αποστέλλεται από το ένα άκρο είναι σίγουρο ότι θα φτάσει στο άλλο. Στο UDP socket όμως δεν συμβαίνει αυτό. Είναι στην ευθύνη του αποστολέα να ελέγξει ότι αυτό που έστειλε, το έλαβε τελικά ο παραλήπτης και δεν χάθηκε στον δρόμο. 2) Από την άλλη, η σύνδεση με TCP socket απαιτεί την ανταλλαγή τριών “πακέτων χειραψίας” ( handshake packets ) και είναι πιο χρονοβόρα στην αρχικοποίησή της από την αντίστοιχη με UDP datagrams. Οι προηγούμενες δύο διαφορές καθορίζουν τελικά και την χρήση των δύο αυτών ειδών.

Ονομασία των παραπάνω στην Java Για την αποφυγή σύγχυσης, να σημειώσουμε ότι ειδικά στην Java, ο όρος Socket χρησιμοποιείται για τα TCP sockets, στην ονοματολογία των κλάσεων και των μεθόδων, ενώ για την δήλωση των UDP sockets, χρησιμοποιείται ο όρος Datagram. Μηχανισμός / Κλάση Περιγραφή Socket TCP άκρο - πελάτης ServerSocket ΤCP άκρο - εξυπηρετητής DatagramSocket UDP άκρο ( client & server ) DatagramPacket UDP πακέτο ΙnetAddress Διεύθυνση Internet Protocol ( IP ) URL Uniform Resource Locator URLConnection Σύνδεση με αντικείμενο του web.

Bιβλιοθήκη για Sockets To πακέτο java.net περιέχει μια κλάση, την Socket, η οποία υλοποιεί μια πλευρά από την διμερής σύνδεση μεταξύ της Java εφαρμογής σας και ενός άλλου προγράμματος στο δίκτυο. Η κλάση Socket βρίσκεται στην κορυφή μιας ανεξαρτήτου πλατφόρμας εφαρμογής. Χρησιμοποιώντας την java.net.Socket κλάση μπορούμε να επικοινωνούμε μέσα σε ένα δίκτυο χωρίς να παίζει ρόλο η πλατφόρμα που έχουμε. ServerSocket: κλάση η οποία υλοποιεί το socket που χρησιμοποιούν οι servers για να δέχονται συνδέσεις από τους clients.

Ανάγνωση από και εγγραφή σε ένα socket Yλοποίηση echο client Yλοποίηση echο server

Datagrams Σε αντίθεση, εφαρμογές που χρησιμοποιούν datagrams στέλνουν και παραλαμβάνουν εντελώς ανεξάρτητα πακέτα δεδομένων. Αυτοί οι clients και servers δεν έχουν και δεν χρειάζονται ένα σημείο προς σημείο κανάλι. Η αποστολή των datagrams στον προορισμό τους δεν είναι εγγυημένη. Ούτε η σειρά της άφιξης. Το datagram είναι ένα ανεξάρτητο, αυτόνομο μήνυμα που θα σταλεί σε ένα δίκτυο για το οποίο η άφιξη, ο χρόνος της άφιξης και το περιεχόμενο δεν είναι εγγυημένα. Το package java.net περιέχει 3 κλάσεις που μας βοηθάνε να γράψουμε Java εφαρμογές που χρησιμοποιούν datagrams για την αποστολή και την παραλαβή datagrams σε ένα δίκτυο: DatagramSocket, DatagramPacket, και MulticastSocket. Μια εφαρμογή μπορεί να στέλνει και να παραλαμβάνει DatagramPackets μέσα από ένα DatagramSocket. Επιπλέον, τα DatagramPackets μπορούν να κάνουν broadcast σε πολλαπλούς παραλήπτες, οι οποίοι όλοι ακούνε σε ένα MulticastSocket.

Εφαρμογές με Datagrams Yλοποίηση echο client (UDP) Yλοποίηση echο server (UDP)

Broadcasting σε πολλαπλούς παραλήπτες MulticastSocket: είδος υποδοχής που χρησιμοποιείται από την πλευρά του client και ακούει για πακέτα τα οποία ο server αποστέλλει (broadcast) σε πολλαπλούς clients.

Προγραμματιστική Πρόσβαση σε Δικτυακές παραμέτρους Διάφορα συστήματα συχνά τρέχουν με πολλές δικτυακές συνδέσεις, όπως Ethernet, 802.11 b/g (ασύρματο) και bluetooth. Κάποιες εφαρμογές μπορεί να θελήσουν να έχουν πρόσβαση σε τέτοιου είδους πληροφορία. Η java.net.NetworkInterface κλάση παρέχει πρόσβαση σε αυτή την πληροφορία. Χρήσιμη για συστήματα με πολλά hosts(2 ή περισσότερες κάρτες δικτύου NICs)

Παράδειγμα με 2 ΝΙC Aν για παράδειγμα έχουμε 1 μηχάνημα με 2 NICs και θέλουμε να στείλουμε δεδομένα στον server, δημιουργούμε ένα socket σαν αυτό: Socket soc = new java.net.Socket(); soc.connect(new InetSocketAddress(address, port)); Για να στείλουμε δεδομένα, το σύστημα καθορίζει ποια διασύνδεση(interface) θα χρησιμοποιηθεί. Εντούτοις αν έχουμε κάποια προτίμηση ή αλλιώς χρειάζεται να προσδιορίσουμε ποια NIC θα χρησιμοποιήσουμε, μπορούμε να βρούμε τις διευθύνσεις αυτών των interfaces που θέλουμε να χρησιμοποιήσουμε.

Συνέχεια παραδείγματος Για παράδειγμα: NetworkInterface nif = NetworkInterface.getByName("bge0"); Enumeration nifAddresses = nif.getInetAddresses(); Socket soc = new java.net.Socket(); soc.bind(nifAddresses.nextElement()); soc.connect(new InetSocketAddress(address, port)); Μπορούμε ακόμα να χρησιμοποιήσουμε την NetworkInterface για τον προσδιορισμό του interface στο οποίο θα μπει το multicast group. Παράδειγμα: NetworkInterface nif = NetworkInterface.getByName("bge0"); MulticastSocket() ms = new MulticastSocket(); ms.joinGroup(new InetSocketAddress(hostname, port) , nif);

Ανάκτηση Διεπαφών(Network Interfaces) Η κλάση NetworkInterface δεν έχει δημόσιο(public) κατασκευαστή. Οπόταν δεν μπορεί να δημιουργηθεί ένα νέο στιγμιότυπο με τον τελεστή new. Aντί αυτού, οι επόμενες στατικές μέθοδοι υπάρχουν έτσι ώστε να μπορούμε να πάρουμε πληροφορίες για το interface του συστήματος μας: getByInetAddress(), getByName() και getNetworkInterfaces() Οι πρώτοι 2 μέθοδοι χρησιμοποιούνται όταν ήδη ξέρουμε την ip διεύθυνση ή το όνομα του συγκεκριμένου interface. H 3η μέθοδος επιστρέφει μια λίστα με τα interface που υπάρχουν. Υπάρχει ιεραρχία! H getParent() επιστρέφει τον πατέρα του interface ή αν δεν υπάρχει τότε κενό και η getSubInterfaces(), επιστρέφει όλες τις υποδιεπαφές(subinterfaces) μιας δικτυακής διεπαφής

Παράδειγμα ανάκτησης Διεπαφών import java.io.*; import java.net.*; import java.util.*; import static java.lang.System.out; public class ListNIFs { public static void main(String args[]) throws SocketException { Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces(); for (NetworkInterface netIf : Collections.list(nets)) { out.printf("Display name: %s\n", netIf.getDisplayName()); out.printf("Name: %s\n", netIf.getName()); displaySubInterfaces(netIf); out.printf("\n"); } static void displaySubInterfaces(NetworkInterface netIf) throws SocketException { Enumeration<NetworkInterface> subIfs = netIf.getSubInterfaces(); for (NetworkInterface subIf : Collections.list(subIfs)) { out.printf("\tSub Interface Display name: %s\n", subIf.getDisplayName()); out.printf("\tSub Interface Name: %s\n", subIf.getName());

Εμφάνιση Αποτελεσμάτων Όπως παρακάτω: Display name: bge0 Name: bge0 Sub Interface Display name: bge0:3 Sub Interface Name: bge0:3 Sub Interface Display name: bge0:2 Sub Interface Name: bge0:2 Sub Interface Display name: bge0:1 Sub Interface Name: bge0:1 Display name: lo0 Name: lo0

Εμφάνιση Διευθύνσεων Δικτυακών Διεπαφών Από τις πιο χρήσιμες πληροφορίες. Στιγμιότυπο κλάσης NetworkInterface: Μέθοδος getInetAddresses(), επιστρέφει την φυσική αλλά και την σχετική ip διεύθυνση(Enumeration of InetAddress) getInterfaceAddresses(), επιστρέφει μια λίστα από στιγμιότυπα της java.net.InterfaceAddress. Αυτή η μέθοδος μπορεί να μας δώσει πληροφορίες όπως το subnet mask, την broadcast διεύθυνση όταν η διεύθυνση είναι μια IPv4, και το μήκος προθέματος ενός δικτύου αν πρόκειται για IPv6 διεύθυνση.

Παράδειγμα Εμφάνισης Διευθύνσεων Δικτυακών Διεπαφών import java.io.*; import java.net.*; import java.util.*; import static java.lang.System.out; public class ListNets{ public static void main(String args[]) throws SocketException { Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces(); for (NetworkInterface netint : Collections.list(nets)) displayInterfaceInformation(netint); } static void displayInterfaceInformation(NetworkInterface netint) throws SocketException { out.printf("Display name: %s\n", netint.getDisplayName()); out.printf("Name: %s\n", netint.getName()); Enumeration<InetAddress> inetAddresses = netint.getInetAddresses(); for (InetAddress inetAddress : Collections.list(inetAddresses)) { out.printf("InetAddress: %s\n", inetAddress); out.printf("\n");

Αποτέλεσμα Εμφάνισης Διευθύνσεων Δικτυακών Διεπαφών Display name: bge0 Name: bge0 InetAddress: /fe80:0:0:0:203:baff:fef2:e99d%2 InetAddress: /121.153.225.59 Display name: lo0 Name: lo0 InetAddress: /0:0:0:0:0:0:0:1%1 InetAddress: /127.0.0.1

Παράμετροι Δικτυακής Διεπαφής Πρόσβαση στις δικτυακές παραμέτρους για μια διεπαφή εκτός από το όνομα και την IP διεύθυνση που της αντιστοιχεί Εξέταση αν το network interface λειτουργεί(“up”): isLoopback() προσδιορίζει αν το network interface είναι ένα loopback interface. isPointToPoint() προσδιορίζει αν το interface είναι έναpoint-to-point interface. isVirtual() προσδιορίζει αν το interface είναι ένα εικονικό(virtual) interface. supportsMulticast() προσδιορίζει αν το interface υποστηρίζει multicasting. getHardwareAddress() επιστρέφει την φυσική ή MAC διεύθυνση της κάρτας(hardware) getMTU() επιστρέφει το Μaximum Transmission Unit (MTU), το οποίο είναι το μέγιστο μέγεθος ενός πακέτου.

Παράδειγμα: Παράμετροι Δικτυακής Διεπαφής import java.io.*; import java.net.*; import java.util.*; import static java.lang.System.out; public class ListNetsEx{ public static void main(String args[]) throws SocketException { Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces(); for (NetworkInterface netint : Collections.list(nets)) displayInterfaceInformation(netint); } static void displayInterfaceInformation(NetworkInterface netint) throws SocketException { out.printf("Display name: %s\n", netint.getDisplayName()); out.printf("Name: %s\n", netint.getName()); Enumeration<InetAddress> inetAddresses = netint.getInetAddresses(); for (InetAddress inetAddress : Collections.list(inetAddresses)) { out.printf("InetAddress: %s\n", inetAddress); out.printf("Up? %s\n", netint.isUp()); out.printf("Loopback? %s\n", netint.isLoopback()); out.printf("PointToPoint? %s\n", netint.isPointToPoint()); out.printf("Supports multicast? %s\n", netint.supportsMulticast()); out.printf("Virtual? %s\n", netint.isVirtual()); out.printf("Hardware address: %s\n“, Arrays.toString(netint.getHardwareAddress())); out.printf("MTU: %s\n", netint.getMTU()); out.printf("\n");

Αποτέλεσμα: Παράμετροι Δικτυακής Διεπαφής Display name: bge0 Name: bge0 InetAddress: /fe80:0:0:0:203:baff:fef2:e99d%2 InetAddress: /129.156.225.59 Up? true Loopback? false PointToPoint? false Supports multicast? false Virtual? false Hardware address: [0, 3, 4, 5, 6, 7] MTU: 1500 Display name: lo0 Name: lo0 InetAddress: /0:0:0:0:0:0:0:1%1 InetAddress: /127.0.0.1 Loopback? true Hardware address: null MTU: 8232