我正在尝试制作一个网络应用程序,以进行概念验证项目。 我需要保持连接打开,加入的客户端,但我运行的while循环永远不会退出第一个循环。 代码:While循环和套接字
public class comm implements Runnable {
private Socket socket;
private String line, input;
boolean sending = true;
boolean connected = false;
private int me;
private BufferedReader br;
private PrintWriter pw;
doComms(Socket server) {
socket = server;
me = Main.connected;
}
public void run() {
try {
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
pw = new PrintWriter(socket.getOutputStream(), true);
while (true) {
System.out.println("Waiting");
readCommand();
}
} catch (Exception ex) {
System.out.println(ex);
}
}
private void readCommand() throws Exception {
String str;
while (br.readLine() != null) {
if (!connected) {
pw.println("connect");
}
str = br.readLine();
System.out.println(str);
if (str.startsWith("!START!")) {
System.out.println("User connected");
connected = true;
String[] split = str.split("#");
Main.jTable1.getModel().setValueAt(split[1], me, 2);
Main.jTable1.getModel().setValueAt(split[2], me, 3);
Main.jTable1.getModel().setValueAt("Connected...", me, 4);
}
}
}
}
开始的代码是好的,它的作用是使一个新的线程为每个连接的用户,并在客户端软件运行正常了。我究竟做错了什么?
你写的while run()方法while(true),这是不正确的。 – 2012-07-06 03:47:48
但是,我希望代码循环,所以我可以在客户端和服务器之间添加更多通信。 – user1497561 2012-07-06 03:49:18
第一个循环与'true'一样吗? – Chan 2012-07-06 03:52:37