Salve sto provando a risolvere questo esercizio, ma temo di aver sbagliato qualcosa poichè client e server non comunicano..
Scrivere due classi java Client e Server con queste caratteristiche:
Server: Accetta dei messaggi dal client (inviati come linee di testo) e le restituisce al client stesso numerandole.
Client: Il client invia dei messaggi in linee di testo al server.
La connessione viene chiusa all’arrivo della stringa “basta”.
Es.:
<il client invia> “Ciao server!”;
<il client riceve> “Messaggio 1: Ciao server!”
<il client invia> “Che bella giornata!”;
<il client riceve> “Messaggio 2: Che bella giornata!” ...
Server
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package esercizio_capitolo_12_3;
import java.net.*;
import java.io.*;
/**
*
*
*/
public class server {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ServerSocket s = null;
try{
s = new ServerSocket (9999);
System.out.println("Server avviato sulla porta 9999 ");
} catch (IOException e) {
e.printStackTrace();
}
while (true){
try {
Socket s1 = s.accept();
OutputStream s1out = s1.getOutputStream();
BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (s1out));
bw.write("Ciao client sono il server!");
System.out.println("Messaggio spedito a "+s1.getInetAddress());
bw.close();
s1.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Client
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package esercizio_capitolo_12_3;
import java.net.*;
import java.io.*;
/**
*
*
*/
public class client {
public static void main(String[] args) {
try {
String host = "127.0.0.1";
Socket s = new Socket(host, 9999);
BufferedReader br = new BufferedReader (new InputStreamReader(s.getInputStream()));
System.out.println(br.readLine());
br.close();
s.close();
}catch (ConnectException connExc){
System.err.println("Non riesco a connettermi al server");
}catch (IOException e){
System.err.println("Problemi....");
}
}
}