编写了一个socket服务器-客户端程序,当服务器和客户端连接成功,想生成新线程进行通信时程序自动关闭,
也没有抛出异常信息。哪位朋友能指点迷津啊???
还有,像这种程序直接关闭没有抛出异常信息的情况下,怎么debug啊?感觉无从下手!

SrvThread[] arrThreads = new SrvThread[50];
private int TotalThread = 0;
略//主程序 连接按钮
btnConnector.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent ae) { thread = new Thread() {
   public void run() {
      try {
while (true) {
    if (svSocket == null) {
svSocket = new ServerSocket(PORT_NO);
    }
         mySocket = svSocket.accept();
                      String strLogMessage = mySocket.getInetAddress().getHostName();
    txtRecieve.setText(strLogMessage);
    arrThreads[TotalThread] = new SrvThread(TotalThread, mySocket);//这一步OK
    arrThreads[TotalThread].start();// <- 这一步造成程序自动关闭!!!                      TotalThread++;
                      if (stopServer == true && TotalThread >= 50) {
break;
    }
}      } catch (SocketException se) {
txtRecieve.setText(se.toString());
System.exit(-1);
     } catch (Exception e) {
txtRecieve.setText(e.toString());
System.exit(-1);
     }
}
     };
     thread.start();
  }
});//通信线程
class SrvThread extends Thread { private int threadNo;
User user = null;
User matchedUser = null;
private String errorMes = null;
private boolean stopServer; public SrvThread(int threadNo, Socket mySocket) { this.threadNo = threadNo;
this.stopServer = false; User user = new User(threadNo, mySocket);
} public void run() {
    try {
while (true) {
    user.ReceiveMessage();
                          if (stopServer == false && user.getReceiveMes() != null) {
  if (user.getMatchedUser() != null) {
       user.getMatchedUser().SendMesssage(user.getReceiveMes());
  }
        }
        if (stopServer == true) {
   break;
        }
} } catch (Exception e) {
errorMes = e.toString();
System.exit(-1);
}
}