2017-02-01 7 views
0

私は毎秒どれだけの着信接続のカウンタを持っています。 、私はこのようなTimerTaskをを開始する前にserversocket.accept()はいつ例外をスローしますか? [java]

int incomingConnections; 
while(true) { 
    try { 
    Socket socket = serverSocket.accept(); 
    incomingConnections++; 
    } catch (Exception ex) { 
    } 

new Timer().scheduleAtFixedRate(new TimerTask() { 
      @Override 
      public void run() { 
       System.out.println("TimerTask: " + incominConnections + " incoming Connections while the last second."); 
       incominConnections = 0; 
      } 
     }, 0, 1000); 

私だけカウントするようにint型をしたいので、私は、行うには何が必要ないことを意味、私はこの1つのようなループを作りましたいつでもループを繰り返します。 何か助けてください? Thx

+1

TimerTaskで何をしようとしているのか分かりません。それは私の言う限り、あなたの質問に無関係です。また、何もしません。なぜそれを組み込んだのですか? –

+0

'ループを繰り返すたびに'と '接続が正常に受け入れられたとき'は、あなたが投稿したコードと同じものです。例外がスローされた場合、カウンタはインクリメントされません。あなたが何を求めているのか不明です。 – EJP

答えて

0

あなたのコードは既にあなたが望むことをします。

接続がこのソケットに要求を待機し、それを受け入れる:

ServerSocket.acceptのためのJavaドキュメント()

はそれがあると述べています。このメソッドは、接続が確立されるまでブロックします。

したがって、acceptブロックを呼び出すため、正常に接続された場合はカウンタが増分されます。

accept()の呼び出しで例外がスローされた場合は、カウンタをインクリメントするコードを実行せずにcatchブロックに入ります。

関連する問題