User Tools

Site Tools


java:sockets

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java:sockets [2018/03/08 09:24] gthanosjava:sockets [Unknown date] (current) – external edit (Unknown date) 127.0.0.1
Line 7: Line 7:
 {{ :java:socket-connect.png |}} {{ :java:socket-connect.png |}}
  
-Το πακέτο java.net της Java παρέχει την κλάση, [[http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html|Socket]], που υλοποιεί μία πλευρά μίας αμφίδρομης σύνδεσης μεταξύ ενός προγράμματος σε Java και ενός άλλου προγράμματος (όχι απαραίτητα σε java) μέσα από το δίκτυο. Η κλάση Socket χρησιμοποιεί την υποδομή των sockets του λειτουργικού συστήματος, κρύβοντας τις λεπτομέρειες του κάθε συστήματος από το πρόγραμμα σας και απαιτώντας ένα ενιαίο API ανεξάρτητα από το λειτουργικό σύστημα που βρίσκεται από κάτω. Επιπλέον, η Java περιλαμβάνει την κλάση [[http://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html|ServerSocket]], η οποία υλοποιεί ένα server-side socket το οποίο ακούει σε συγκεκριμένη πόρτα και αποδέχεται συνδέσεις από τον έξω κόσμο. +Το πακέτο java.net της Java παρέχει την κλάση, [[http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html|Socket]], που υλοποιεί μία πλευρά μίας αμφίδρομης σύνδεσης μεταξύ ενός προγράμματος σε Java και ενός άλλου προγράμματος (όχι απαραίτητα σε java) μέσα από το δίκτυο. Η κλάση Socket χρησιμοποιεί την υποδομή των sockets του λειτουργικού συστήματος, κρύβοντας τις λεπτομέρειες του κάθε συστήματος από το πρόγραμμα σας και απαιτώντας ένα ενιαίο API ανεξάρτητα από το λειτουργικό σύστημα που βρίσκεται από κάτω. Επιπλέον, η Java περιλαμβάνει την κλάση [[http://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html|ServerSocket]], η οποία υλοποιεί ένα server-side socket το οποίο ακούει σε συγκεκριμένη πόρτα, ώστε να αποδέχεται συνδέσεις από τον έξω κόσμο. 
  
 Δείτε τα παρακάτω προγράμματα πελάτη/εξυπηρετητή τα οποία επικοινωνούν μεταξύ τους. Συγκεκριμένα ο πελάτης συνδέεται στον εξυπηρετητή και αποστέλλει περιεχόμενο το οποίο διαβάζει από το standard input. Ο εξυπηρετητής διαβάζει αυτό που του έστειλε ο πελάτης και του το επιστρέφει πίσω. Ο πελάτης λαμβάνει τελικά πίσω αυτό που αρχικά έστειλε στον εξυπηρετητή. Δείτε τα παρακάτω προγράμματα πελάτη/εξυπηρετητή τα οποία επικοινωνούν μεταξύ τους. Συγκεκριμένα ο πελάτης συνδέεται στον εξυπηρετητή και αποστέλλει περιεχόμενο το οποίο διαβάζει από το standard input. Ο εξυπηρετητής διαβάζει αυτό που του έστειλε ο πελάτης και του το επιστρέφει πίσω. Ο πελάτης λαμβάνει τελικά πίσω αυτό που αρχικά έστειλε στον εξυπηρετητή.
  
 <code java EchoServer.java> <code java EchoServer.java>
-mport java.net.*;+import java.net.*;
 import java.io.*; import java.io.*;
  
Line 87: Line 87:
 </code> </code>
  
-Για να εκτελέσετε τα δύο προγράμματα θα πρέπει να εκκινήσετε πρώτα το //EchoServer// δηλώνοντας το port στο οποίο θα ακούει (π.χ. ''java EchoServer 8888''). Στην συνέχεια εκκινείτε το //EchoClient// ως εξής ''java EchoClient localhost 8888''. Η σύνδεση μέσω sockets δεν υλοποιεί κάποιο πρωτόκολλο επικοινωνίας σε επίπεδο application μεταξύ των δύο άκρων (π.χ. http, ftp)+Για να εκτελέσετε τα δύο προγράμματα θα πρέπει να εκκινήσετε πρώτα το //EchoServer// δηλώνοντας το port στο οποίο θα ακούει (π.χ. ''java EchoServer 8888''). Στην συνέχεια εκκινείτε το //EchoClient// ως εξής ''java EchoClient localhost 8888''
  
 Δύο παραλλαγές των παρακάτω προγραμμάτων είναι η παρακάτω. Στο πρόγραμμα //EchoClient.java// πρώτα δημιουργείται το socket και μετά γίνεται connect σε συγκεκριμένη διεύθυνση (hostname, portnumber). Αντίστοιχα στο πρόγραμμα //EchoServer// πρώτα δημιουργείται το socket και στη συνέχεια γίνεται bind το server socket σε συγκεκριμένη διεύθυνση ("localhost", portnumber). Δύο παραλλαγές των παρακάτω προγραμμάτων είναι η παρακάτω. Στο πρόγραμμα //EchoClient.java// πρώτα δημιουργείται το socket και μετά γίνεται connect σε συγκεκριμένη διεύθυνση (hostname, portnumber). Αντίστοιχα στο πρόγραμμα //EchoServer// πρώτα δημιουργείται το socket και στη συνέχεια γίνεται bind το server socket σε συγκεκριμένη διεύθυνση ("localhost", portnumber).
Line 179: Line 179:
 </code> </code>
  
-|Προηγούμενο: [[:java:urlsURLs  ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:concurrency_introΤαυτόχρονος προγραμματισμός με νήματα ]]|+|Προηγούμενο: [[:java:object_serializationObject Serialization/Deserialization ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:urlsURLs ]]|
  
java/sockets.1520501061.txt.gz · Last modified: 2018/03/08 09:24 (external edit)