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
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.*; 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(); } }
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?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); } } }![]()

Rispondi quotando
