serversocket.accept() 什么时候抛出异常? [java]
When do serversocket.accept() throws an exception? [java]
我想要一个计数器来计算我每秒有多少传入连接。这意味着,我做了一个这样的循环:
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 仅在接受连接成功时才计数,而不是每次迭代循环时都计数。
有什么帮助吗?
谢谢
您的代码已经达到了您的要求。
ServerSocket.accept() 的 Java 文档指出:
Listens for a connection to be made to this socket and accepts it. The method blocks until a connection is made.
因此,由于对 accept 的调用会阻塞,因此只有在成功建立连接后,您才会增加计数器。
如果在调用 accept() 时抛出异常,您将进入 catch 块,而不执行递增计数器的代码。
我想要一个计数器来计算我每秒有多少传入连接。这意味着,我做了一个这样的循环:
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 仅在接受连接成功时才计数,而不是每次迭代循环时都计数。 有什么帮助吗? 谢谢
您的代码已经达到了您的要求。
ServerSocket.accept() 的 Java 文档指出:
Listens for a connection to be made to this socket and accepts it. The method blocks until a connection is made.
因此,由于对 accept 的调用会阻塞,因此只有在成功建立连接后,您才会增加计数器。
如果在调用 accept() 时抛出异常,您将进入 catch 块,而不执行递增计数器的代码。