ιαδικτυακές Εφαρµογές



Σχετικά έγγραφα
(C) 2010 Pearson Education, Inc. All rights reserved.

Διδάσκων: Παναγιώτης Ανδρέου

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

Ειδικά Θέματα Προγραμματισμού

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

HY335 4ο Φροντιστήριο

{ πρωτόκολλο, τοπική-διεύθυνση, τοπική-διεργασία, απομακρυσμένη-διεύθυνση, απομακρυσμένη-διεργασία }

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net

ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Ορισμός : URL είναι ένα ακρωνύμιο για το Uniform Resource Locator και το οποίο αποτελεί μια αναφορά ( μια διεύθυνση ) στο Internet.

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

άσκηση Hide UI Elements 7.2 Try and Catch

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

//στο pin 3 του μικροελεγκτή συνδέουμε το control pin του ρελέ. WRITE 'I am on' στο SOCKET // λέω στον client ότι άναψα τη λάμπα

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος.

Αντικειµενοστρεφής Προγραµµατισµός

ΕΑΠ/ΠΛΗ22/ΑΘΗ.3 4 η ΟΣΣ 15/03/2014 Συμπληρωματικές Διαφάνειες

Κατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4

Εισαγωγή στον Κατανεμημένο Προγραμματισμό

Επίπεδο δικτύου IP Forwading κτλ

Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης

Εγχειρίδιο Συναρτήσεων. Socket *sopen(const int type, const int protocol, const char *host, const char *service)

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Interprocess Communication

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

Επιβλέπων Καθηγητής : Τσιαντής Λεωνίδας Φοιτητής : Μακρής Γεώργιος

Κατανεμημένα Συστήματα

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

Στρατηγικές Ασφάλειας

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

Μάθημα 2 [10/11/2015]

Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης

Οντοκεντρικός Προγραμματισμός

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

10.1 Γενικά για τα streams

Generics και ArrayLists

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux

Εργαστήριο Δικτύων Υπολογιστών

Δίκτυα Υπολογιστών Το επίπεδο μεταφοράς (transport layer)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

JAVA TUTORIAL ΠΕΡΙΕΧΟΜΕΝΑ. ΚΕΦΑΛΑΙΟ 1. Τί κάνει τη Java να ξεχωρίζει; Εγκαθιστώντας τη Java

Πολυνηµατικές εφαρµογές σε Java

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα

6. Εξαιρέσεις στη γλώσσα Java

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Οι Διαδικτυακές ανάγκες μιας εταιρείας σε διευθύνσεις IPv4, έχουν ως εξής: Τμήμα Διοίκησης Προσωπικού & Οικονομικών Σύνολο απαιτούμενων διευθύνσεων

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Επαναληπτικές Ασκήσεις Μαθήματος

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 1/11/07

Προγραµµατισµός ΙΙ Java 2

Εισαγωγή στον Προγραμματισμό

Δομές Δεδομένων - Εργαστήριο 2. Λίστες

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Βασικά της γλώσσας JAVA

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

Γενικοί Τύποι. 13 Ιανουαρίου 2011 Αντικειμενοστρεφής Προγραμματισμός στη Java 32

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Αντικειμενοστρεφής Προγραμματισμός

Επικοινωνία Client/Server Υποδοχές (Παραδείγματα)

Βασικές Έννοιες Δοµών Δεδοµένων

Εισαγωγή στους Υπολογιστές

Mεταβλητές (variables) και Σταθερές (constants)

ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021

Remote Method Invocation (RMI)

Εισαγωγή στη Βιοπληροφορική

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

Επίπεδο δικτύου IP διευθυνσιοδότηση

Συλλογές, Στοίβες και Ουρές

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Εργαστήριο Ethereal: ICMP

Υπηρεσία Πληροφορικών Συστημάτων Τομέας Διαχείρισης Συστημάτων και Εφαρμογών

Περιγραφή της εργασίας

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δίκτυα Υπολογιστών Ενότητα 3: Domain Name System - DNS

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Υπολογιστές και ίκτυα Η/Υ.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Ενότητα 1: HTTP, Clients και Servers. (Web, το θεμέλιο του Σημασιολογικού Ιστού)

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

Transcript:

ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port 16bit αριθµός που χρησιµοποιείται από το Transmission Control Protocol και το User Datagram Protocol για την παράδοση δεδοµένων στη σωστή εφαρµογή 1

Όροι Socket Είναι µια αµφίδροµη σύνδεση επικοινωνίας µεταξύ δύο εφαρµογών που τρέχουν στο δίκτυο. Ένα Socket αντιστοιχεί σε ένα Port σε έναν υπολογιστή. Χρησιµοποιείται ως τερµατικό σηµείο για την ανταλλαγή δεδοµένων µεταξύ δυο υπολογιστών. Socket address Σε κάθε Socket αντιστοιχεί µια διεύθυνση. Αυτή είναι ένας συνδυασµός της IP διεύθυνσης κι ενός αριθµού Port. Μια Socket address χαρακτηρίζει µοναδικά µια εφαρµογή στο δίκτυο. Όροι UDP User Datagram Protocol, είναι ένα πρωτόκολλο του στρώµατος µεταφοράς (transport layer) Datagram Καλείται ένα πακέτο του UDP. Είναι ένα ανεξάρτητο µικρού µεγέθους δεδοµένο που αποστέλλεται στο δίκτυο και δεν εγγυάται κανείς ούτε για την ακεραιότητα του περιεχοµένου του ούτε για τη λήψη του. 2

Ανάγνωση δεδοµένων URL URL: Uniform Resource Locator Αντιστοιχεί σε ένα δείκτη στον Παγκόσµιο Ιστό Παράδειγµα: http://rtsimage.di.uoa.gr/iakovidis/java.htm Ανάγνωση δεδοµένων URL import java.net.*; import java.io.*; import java.util.*; public class GetURLInfo { public static void printinfo(urlconnection u) throws IOException { // Display the URL address, and information about it. System.out.println(u.getURL().toExternalForm() + ":"); System.out.println(" Content Type: " + u.getcontenttype()); System.out.println(" Content Length: " + u.getcontentlength()); System.out.println(" Last Modified: " + new Date(u.getLastModified())); System.out.println(" Expiration: " + u.getexpiration()); System.out.println(" Content Encoding: " + u.getcontentencoding()); 3

Ανάγνωση δεδοµένων URL // Read and print out the first five lines of the URL. System.out.println("First five lines:"); DataInputStream in = new DataInputStream(u.getInputStream()); for(int i = 0; i < 5; i++) { String line = in.readline(); if (line == null) break; System.out.println(" " + line); Ανάγνωση δεδοµένων URL // Create a URL from the specified address, open a connection to it, // and then display information about the URL. public static void main(string[] args) throws MalformedURLException, IOException { URL url = new URL(args[0]); URLConnection connection = url.openconnection(); printinfo(connection); 4

Ανάγνωση δεδοµένων URL Παράδειγµα εξόδου: C:\WINDOWS\Desktop\Site>java GetURLInfo http://rtsimage.di.uoa.gr http://rtsimage.di.uoa.gr: Content Type: text/html Content Length: 489 Last Modified: Mon Jun 17 11:33:14 EEST 2002 Expiration: 0 Content Encoding: null First five lines: <html> <head> <title>rts Image</title> <meta http-equiv="content-type" content="text/html; charset=iso- 8859-7"> </head> Αποστολή Datagram Βήµα 1 Άνοιγµα ενός Datagram Socket ( ηµιουργία αντικειµένου Socket) Για αποστολή: DatagramSocket socket=new DatagramSocket(); 5

Αποστολή Datagram Βήµα 2 Προετοιµασία της αποστολής ενός UDP Datagram ( ηµιουργία αντικειµένου πακέτου) DatagramPacket datagram=new DatagramPacket(payload, size, address,port); String data = my message ; byte[] payload = data.getbytes(); size = payload.length; InetAddress address=inetaddress.getbyname("ip address"); int port = 2000; // ή όπου ακούει ο server Αποστολή Datagram Βήµα 3 Αποστολή του Datagram socket.send(datagram); Κλείσιµο του Socket (τέλος) 6

Αποστολή Datagram import java.io.*; import java.net.*; // This class sends the specified text as a datagram to port 6010 of the // specified host. public class UDPSend { static final int port = 6010; public static void main(string args[]) throws Exception { if (args.length!= 2) { System.out.println("Usage: java UDPSend <hostname> <message>"); System.exit(0); Αποστολή Datagram // Create a socket, and send the packet through it. DatagramSocket socket = new DatagramSocket(); // Get the internet address of the specified host InetAddress address = InetAddress.getByName(args[0]); // Convert the message to an array of bytes int msglen = args[1].length(); byte[] message = new byte[msglen]; args[1].getbytes(0, msglen, message, 0); // Initilize the packet with data and address DatagramPacket packet = new DatagramPacket(message, msglen, address, port); socket.send(packet); 7

Λήψη Datagram Βήµα 1 Άνοιγµα ενός Datagram Socket ( ηµιουργία αντικειµένου Socket) Για λήψη: DatagramSocket socket=new DatagramSocket(port); int port = 2000; // ή όποιο χρησιµοποιείται για να περιµένει τα πακέτα Λήψη Datagram Βήµα 2 Προετοιµασία της λήψης ενός UDP Datagram ( ηµιουργία αντικειµένου πακέτου) DatagramPacket datagram=new DatagramPacket(payload, size); byte[] payload = data.getbytes(); size = payload.length; String data = new String(payload, 0, 0, packet.getlength()); 8

Λήψη Datagram Βήµα 3 Λήψη του Datagram socket.receive(datagram); Κλείσιµο του Socket (τέλος) Λήψη Datagram import java.io.*; import java.net.*; // This program waits to receive datagrams sent to port 6010. // When it receives one, it displays the sending host and port, // and prints the contents of the datagram as a string. public class UDPReceive { static final int port = 6010; public static void main(string args[]) throws Exception { byte[] buffer = new byte[1024]; String s; 9

Λήψη Datagram // Create a socket to listen on the port. DatagramSocket socket = new DatagramSocket(port); for(;;) { // Create a packet with an empty buffer to receive data // Bug workaround: create a new packet each time through the loop. // If we create the packet outside of this loop, then it seems to // loose track of its buffer size, and incoming packets are // truncated. DatagramPacket packet = new DatagramPacket(buffer, buffer.length); Λήψη Datagram + + ":" + // Wait to receive a datagram socket.receive(packet); // Convert the contents to a string s = new String(buffer, 0, 0, packet.getlength()); // And display them System.out.println("UDPReceive: received from " packet.getaddress().gethostname() packet.getport() + ": " + s); 10