while循环只执行一次

时间:2013-07-27 08:48:54

标签: java

我写了一个简单的服务器应用程序,如下所示。 我在run()里面有一个while循环,但它似乎只执行了一次try块。我希望程序能够不断吐出“GoodBye”。我怎么做到呢?

import java.net.*;
import java.io.*;

public class GreetingServer extends Thread
{
   private ServerSocket serverSocket;

   public GreetingServer() throws IOException
   {
      serverSocket = new ServerSocket(5063);
      serverSocket.setSoTimeout(0);
   }

   public void run()
   {
      while(true)
      {
         try
         {
            System.out.println("Waiting for client on port " +
                        serverSocket.getLocalPort() + "...");

        Socket server = serverSocket.accept();

        System.out.println("Just connected to "
                                + server.getRemoteSocketAddress());

            DataOutputStream out = new DataOutputStream(server.getOutputStream());

            out.writeUTF("\nGoodbye!");
            //server.close();
         }
     catch(SocketTimeoutException s)
         {
            System.out.println("Socket timed out!");
            break;
         }
     catch(IOException e)
         {
            e.printStackTrace();
            break;
         }
     continue;
      }
   }
   public static void main(String [] args)
   {
      try
      {
         Thread t = new GreetingServer();
         t.start();
      }
      catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

3 个答案:

答案 0 :(得分:2)

你肯定会在eclipse中检查你的logcat异常。 然后找到该异常的解决方案:)

答案 1 :(得分:1)

我认为你得到例外,所以取消休息;来自catch block

答案 2 :(得分:0)

从catch块中删除break语句