Vorrei costruire un applicazione Client Server dove il client passa al server una stringa e questa viene resitutita al server in maiuscolo, e per fare ciò ho seguito la guida ufficiale di Java delle socket; ho prodotto questo codice:
Client
codice:
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.*;
public class TCPClient {
/**
* @param args
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException, IOException {
// TODO Auto-generated method stub
String frase;
String fraseModificata;
Socket clientSocket=new Socket (InetAddress.getLocalHost(),500);
PrintWriter out2Server=new PrintWriter(clientSocket.getOutputStream());
BufferedReader inFromServer=new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
frase="ciao mondo";
System.out.println("La frase inviata è "+ frase);
out2Server.print(frase);
fraseModificata=inFromServer.readLine();
System.out.println("\nIl server ha convertito così: "+fraseModificata);
out2Server.close();
inFromServer.close();
clientSocket.close();
}
}
Server:
codice:
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.InetAddress;
public class TCPServer {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String fraseMaiuscolo;
ServerSocket startSocket=new ServerSocket(500);
while (true){
Socket connessione=startSocket.accept();
BufferedReader inFromClient=new BufferedReader(new InputStreamReader(connessione.getInputStream()));
PrintWriter out2Client=new PrintWriter(connessione.getOutputStream());
String fraseClient;
fraseClient=inFromClient.readLine();
fraseMaiuscolo=fraseClient.toUpperCase();
out2Client.println(fraseMaiuscolo);
}
}
}
Ebbene sto impazzendo, perchè sembra che al server arrivi la connessione, ma non riesce proprio a leggere tramite la readLine...e ciò fa bloccare tutto il sistema...potreste dirmi dove ho sbagliato?