2013-07-27 3 views
0

Я написал простое серверное приложение, которое приведено ниже. У меня есть цикл while внутри run(), но, похоже, он делает выполнение блока try только один раз. Я хочу, чтобы программа продолжала выплевывать «GoodBye's» постоянно. Как я могу заставить это сделать это?while цикл выполняется только один раз

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(); 
     } 
    } 
} 
+2

улова удалить эти разрывы уловов блоков. –

+0

вы получаете исключение –

+1

Возможно, вы получите некоторое исключение и выход из цикла в catch! – NINCOMPOOP

ответ

2

Вы, несомненно, получаете исключение, проверяя свой логарифм для исключения в затмении. Тогда найти решение для этого исключения :)

1

Я думаю, что вы получаете исключение, поэтому удалите перерыв; из блока catch

0

Снимите break заявления от блока

Смежные вопросы