我需要创建一个单线程观察程序来监视套接字连接以查看它们是否打开或以前打开过,如果它是错误的,则输出一条日志行。
在打开套接字连接的类(3个不同的)中,我创建了一个类似于下面示例的计时器,但这将创建多个我不想要的线程:
if (connectionToCheck()) {
new Timer().schedule(new TimerTask() {
@Override
public void run() {
if (!socket.isConnected()) {
LOG.info("connection - {} second timeout: { host={}, port={} }",DEFAULT_TIMEOUT ,host ,port );
}
}
}, DEFAULT_TIMEOUT*1000);
socket.connect(new InetSocketAddress(host, port), connect_timeout);
我在java方面不是很有经验,所以如果有人可以给我一些关于如何开始这方面的指示,我正在徘徊。
提前致谢。
编辑:
这个想法是多个连接将同时进行,并且它们都需要被这个新类监视。因此,第一个连接将创建观察者对象,随后的连接只会添加要监视的新连接)。