Java serversocket.accept()何时引发异常?[爪哇]
我想有一个计数器,显示每秒有多少传入连接。也就是说,我做了一个这样的循环:Java serversocket.accept()何时引发异常?[爪哇],java,sockets,exception,timer,timertask,Java,Sockets,Exception,Timer,Timertask,我想有一个计数器,显示每秒有多少传入连接。也就是说,我做了一个这样的循环: int incomingConnections; while(true) { try { Socket socket = serverSocket.accept(); incomingConnections++; } catch (Exception ex) { } 之前,我启动了这样一个TimerTask: new Timer().scheduleAtFixedRate(new Tim
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您的代码已经完成了您想要的功能 ServerSocket.accept()的Java文档声明: 侦听与此套接字的连接并接受它。该方法会一直阻塞,直到建立连接为止 因此,由于对accept的调用被阻塞,因此只有在成功建立连接时,才会增加计数器
如果在对accept()的调用中引发异常,您将进入catch块,而不执行递增计数器的代码。我不明白您试图对TimerTask做什么。据我所知,那与你的问题无关。而且它什么也不做。为什么要包含它?“每次它迭代循环”和“当它成功接受连接时”在您发布的代码中都是一样的。如果抛出异常,则计数器不会递增。不清楚你在问什么。