Πρεπει να χρησιμοποιησουμε 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!