J'ai la classe suivante:fil coincé dans readUTF()
public class Prices {
String priceValues;
public String getPriceValues() {
return priceValues;
}
public void setPriceValues(String priceValues) {
this.priceValues = priceValues;
}
}
Ceci est ma méthode run
dans la SocketServer
classe:
public void run() {
while(true) {
try {
DataInputStream in = new DataInputStream(server.getInputStream());
System.out.println(in.readUTF());
prices.setPriceValues(in.readUTF());
DataOutputStream out = new DataOutputStream(server.getOutputStream());
out.writeUTF("Thank you for connecting to " + server.getLocalSocketAddress()
+ "\nGoodbye!");
//server.close();
}catch(SocketTimeoutException s) {
System.out.println("Socket timed out!");
break;
}catch(IOException e) {
e.printStackTrace();
break;
}
}
}
Tout fonctionne bien, mais je veux conserver ce que je suis recevoir du client de telle sorte qu'il puisse être consulté par n'importe quelle classe. J'ai donc créé une classe appelée Prices
.
Cependant, le fil est bloqué sur la ligne suivante:
prices.setPriceValues(in.readUTF());
La variable prices
est non nul, et tout fonctionne bien quand je prends cette ligne sur.
Vous ne devez pas recréer 'DataInputStream' à chaque fois autour de la boucle. Créez-le avant la boucle. – EJP