我有以下類:線程停留在的readUTF()
public class Prices {
String priceValues;
public String getPriceValues() {
return priceValues;
}
public void setPriceValues(String priceValues) {
this.priceValues = priceValues;
}
}
這是我run
方法在SocketServer
類:
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;
}
}
}
一切都正常運行,但我想保存我是什麼從客戶處接收任何類別可以訪問的方式。所以我創建了一個名爲Prices
的課程。
但是,線程被卡在下面一行:
prices.setPriceValues(in.readUTF());
的prices
變量不爲空,且一切運行正常,當我走這條線了。
每次在循環中都不應該重新創建'DataInputStream'。在循環之前創建它。 – EJP