Salve a tutti!!! Ho un problemino su una trasmissione dati via socket TCP in java.Sto implementando un dialogo dove il Client manda un file al Server e quest'ultimo lo salva in locale. Dopo il file cerco di inviare una stringa di controllo sempre dal Client al Server ma non arriva o perchè c'è qualche errore o perchè mi dice "Socket is closed"
. Qualcuno può aiutarmi? Qui sotto i file incriminati...Grazie!!
![]()
SERVER
public class ServerFile {
public static void main(String[] args)throws Exception {
ServerSocket serSock=new ServerSocket(4004);
Socket server= serSock.accept();
String leggo;
DataInputStream in = new DataInputStream(server.getInputStream());
DataOutputStream out = new DataOutputStream(server.getOutputStream());
File nuovo = new File ("C:\\NuovoFile.xml");
FileWriter scrivo = new FileWriter(nuovo);
leggo=in.readLine();
System.out.println(leggo);
scrivo.write(leggo); //salvataggio file ricevuto
scrivo.close();
in.close();
DataInputStream in1 = new DataInputStream(server.getInputStream());
String data = in1.readUTF(); //Qui non arriva niente (dovrebbe arrivare "Hai finito?")
System.out.println("Ricevuto: " + data);
server.close();
}
}
CLIENT
public class ClientFile {
public static void main(String[] args)throws Exception {
String linea;
Socket client= new Socket("localhost", 4004);
DataInputStream in = new DataInputStream(client.getInputStream());
DataOutputStream out = new DataOutputStream(client.getOutputStream());
BufferedReader file = new BufferedReader(new FileReader("c:\\mioFile.xml"));
do{
linea=file.readLine(); //spedizione file
System.out.println(linea);
out.writeBytes(linea);
}while (!linea.equals("</fine_file>"));
file.close();
out.close();
DataOutputStream out1 = new DataOutputStream(client.getOutputStream()); //tentativo di spedizione stringa
out1.writeUTF("hai finito? \n");
client.close();
}
}