我有以下类:线程停留在的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