我想知道每秒传入的连接数量。这意味着,我做了一个像这样的循环:
int incomingConnections;
while(true) {
try {
Socket socket = serverSocket.accept();
incomingConnections++;
} catch (Exception ex) {
}
之前,我开始像这样的TimerTask:
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只在接受连接成功时计数,而不是每次迭代循环时都计数。 有帮助吗? THX
答案 0 :(得分:0)
您的代码已经完成了您想要的任务。
ServerSocket.accept()的Java文档说明了它:
侦听与此套接字的连接并接受它。该方法将阻塞,直到建立连接。
因为调用接受块,只有成功建立连接才会增加计数器。
如果在调用accept()时抛出异常,您将进入catch块,而不执行增加计数器的代码。