Salve a tutti,
ho un problema in un applicazione client-server.Il client invia una fotografia al server e il server risponde con un messaggio di risposta. Vi posto il codice...
Server:
codice:
public class Server {
public static void main(String[] args) throws Exception {
String response="response";
ServerSocket socket = new ServerSocket(3333);
while (true) {
Socket clientSocket = socket.accept();
DataInputStream dis = new DataInputStream(clientSocket.getInputStream());
FileOutputStream fout = new FileOutputStream("output.jpg");
int i;
while ( (i = dis.read()) > -1)
fout.write(i);
DataOutputStream outToClient= new DataOutputStream(clientSocket.getOutputStream());
outToClient.writeBytes(response);
fout.flush();
fout.close();
dis.close();
outToClient.close();
clientSocket.close();
}
}
}
Client:
codice:
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String sentence;
int i;
FileInputStream fis = new FileInputStream ("pathphoto.jpg");
Socket sock = new Socket ("hostname",3333);
DataOutputStream os = new DataOutputStream(sock.getOutputStream());
System.out.println("Sending....");
while ((i = fis.read()) > -1)
os.write(i);
BufferedReader inFromServer= new BufferedReader(new InputStreamReader(sock.getInputStream()));
sentence=inFromServer.readLine();
System.out.println("FROM SERVER: " + sentence);
fis.close();
os.close();
sock.close();
}
}
Il problema è che il client non riceve la risposta dal server e credo che sia in queste righe:
codice:
BufferedReader inFromServer= new BufferedReader(new InputStreamReader(sock.getInputStream()));
sentence=inFromServer.readLine();
poichè senza di queste il server invia la risposta, però poi non posso visualizzarla a video nel client. Qualche consiglio su come risolvere il problema ? Grazie