andreas_g Δημοσ. 3 Μαΐου 2009 Δημοσ. 3 Μαΐου 2009 Εχω μια εργασια σε java....... Πρεπει να χρησιμοποιησουμε Socket και να φτιαξουμε ενα server και ενα client! Μας εχει δοσει τα σημαντικα καμματια του προγραμματος και λεει να τα βαλουμε στη σειρα αλλα και παλι εχω χαθει........και απο το ducumentation της java δεν βγαζω ακρη. Λοιπον το καμματι που μας δεινει για τον server ειναι αυτο: > try { int port = 2000; ServerSocket srv = new ServerSocket(port); // Wait for connection from client. Socket socket = srv.accept(); } catch (IOException e) { } Αρα τελικα ο server θα μοιαζει καπως ετσι: > import java.net; public class SocketServer { pubic static void main(String[] args) { public SocketServer() { try { int port = 2000; ServerSocket srv = new ServerSocket(port); Socket socket = srv.accept(); } catch (IOException e) { System.out.println("Apotuxia sundesis!"); System.exit(0); } } } } Καταρχην, μπορω να βαλω την try μεσα στον κατασκευαστη? Αρκει η κληση του ServerSocket ειναι μεσα στην try η πρεπει να τον καλεσω και εξω! Για τον client τα κομματια που μας δινει 3, 1. > try { InetAddress addr = InetAddress.getByName("java.sun.com"); int port = 80; // This constructor will block until the connection succeeds Socket socket = new Socket(addr, port); } catch (UnknownHostException e) { } catch (IOException e) { } 2. > try { BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream())); String str; while ((str = headline()) != null) { process(str); } rd.close(); } catch (IOException e) { } 3. > try { BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); wr.write("aString"); wr.flush(); } catch (IOException e) { } Εδω τωρα ειναι που δεν ξερω τι μου γινεται!!!!!!! Το πρωτο κανει την συνδεση,το δευτερο γραφει και το τριτο διαβαζει??????????? Για να δουλεψουν πρεπει να φτιξω τρις μεθοδους και τα τις καλεσω απο τον κατασκευαστη? Στο πρωτο καμματι του client τι διαφορα εχουν τα δυο exception?????? Καμια ιδεα??? Sorry για το μεγαλο post!
Evgenios1 Δημοσ. 3 Μαΐου 2009 Δημοσ. 3 Μαΐου 2009 Αρχισε το. Συμφωνα με αυτα τα κομματια πρεπει να φτιαξεις δυο εφαρμογες α) Server β) Client Ο server περιμενει μια συνδεση, και οταν συνδεθει στελνει κατι, και περνει κατι (εφοσον ο client περιμενει να παρει κατι και μετα νστελνει κατι). O client συνδεετε σε εναν server οταν συνδεθει διαβαζει αυτο που του στελνει ο server και μετα στελνει κατι. κατι?
ilias_t Δημοσ. 5 Μαΐου 2009 Δημοσ. 5 Μαΐου 2009 Μερικές παρατηρήσεις στο post σου... - Έχεις βάλει τον "κατασκευαστή" μέσα στη main, αυτό είναι λάθος. - Εφόσον έχεις client/server αρχιτεκτονική, θα χρειαστείς 2 διαφορετικές κλάσεις, με κάθε μια να έχει τη δικιά της main. - Πρέπει να ξεκινήσεις με τα πιο basics της Java (contstructors, exception handling), γιατί απότι φαινεται δεν τα κατέχεις. - Αφού πάρεις μια ματιά από τα βασικά, ρίξε μια ματιά στο εξής tutorial http://www.javaworld.com/javaworld/jw-12-1996/jw-12-sockets.html Cheers...
andreas_g Δημοσ. 6 Μαΐου 2009 Μέλος Δημοσ. 6 Μαΐου 2009 Παιδια, εγω εχω απηβδησει.........εχω κανει κατι αλλα δεν ειμαι σιγουρος για τιποτα!:cry::cry: Λοιπον: class SocketServer > import java.net.*; import java.io.*; public class SocketServer { public SocketServer() { int port = 2000; Socket socket = null; try { ServerSocket srv = new ServerSocket(port); socket = srv.accept(); } catch (IOException e) { System.out.println("Aitisi den lifthike!"); System.out.println(e.getMessage()); System.exit(0); } DataInputStream input = null; try { input = new DataInputStream(socket.getInputStream()); } catch (IOException e) { System.out.println(e.getMessage()); } PrintStream output = null; try { output = new PrintStream(socket.getOutputStream()); } catch (IOException e) { System.out.println(e.getMessage()); } String line; try { while (true) { line = input.readLine(); output.println(line); } } catch (IOException e) { System.out.println(e.getMessage()); } } } class SocketServerDemo > public class SocketServerDemo { public static void main(String[] args) { SocketServer ss = new SocketServer(); } } class SocketClient > import java.net.*; import java.io.*; public class SocketClient { Socket socket = null; DataOutputStream output = null; DataInputStream input = null; public SocketClient() { try { InetAddress addr = InetAddress.getByName("java.sun.com"); int port = 2000; Socket socket = new Socket(addr, port); } catch (UnknownHostException e) { System.out.println("Don't know about host: java.sun.com"); } catch (IOException e) { System.out.println("Couldn't get I/O for the connection to: java.sun.com"); } DataInputStream input; try { input = new DataInputStream(socket.getInputStream()); } catch (IOException e) { System.out.println(e.getMessage()); } PrintStream output; try { output = new PrintStream(socket.getOutputStream()); } catch (IOException e) { System.out.println(e.getMessage()); } } public void closesocket() { try { socket.close(); } catch (IOException e) { System.out.println(e.getMessage()); } } } class SocketClientDemo > import java .io.*; import java.net.*; import java.util.*; public class SocketClientDemo { public static void main(String[] args) { SocketClient sc = null; DataOutputStream output = null; DataInputStream input = null; sc = new SocketClient(); Scanner keyboard = new Scanner(System.in); String line; System.out.println("Dwse to prwto minima!"); line = keyboard.nextLine(); try { while(line != "quit") { output.writeBytes(keyboard.nextLine()); } } catch (IOException e) { System.out.println(e.getMessage()); } sc.closesocket() ; try { output.close(); input.close(); } catch (IOException e) { System.out.println(e.getMessage()); } } } Τι εχεται να πειτε??????? Δεν εβαλα τελικα τα δικα του τα κομματια γιατι με το ζορι καταναλα και αυτα απο το link!!!!:rolleyes: Οσο για τον κατασκευαστη μεσα στη main...... ο καθηγητης που ειπε να τον βαλω......Μεχρι τωρα εγω δεν το ειχα κανει.........προφανως θα μπερδευτικε και αυτος.......γιατι οταν εδωσε την εργασια μεσα στην ταξη εγινε πανικος.......πηγενε περα-δωθε πανοκοβλητος.......και οταν για μια στιγμη ηρθε σε μενα για να τον ρωτησω τι παιζει....μου ειπε να τα βαζω ολα μαζι...........και αυτο εκανα.........:rolleyes:
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.