我在写一个接收 socket 资料的程式,我想要在 class 之中会一直接收资料直到我按下 ctrl + c。
我的程式码类似像是这样
public static void main(String[] args) {
conn = new Connection(payload);
conn.connect();
while(true){
// keep the program listening to the socket data
}
conn.disconnect();
}
我要结束程式码时,执行 conn.disconnect() 这个方法。
我知道可以借由
Runtime.getRuntime().addShutdownHook(new Thread()
{
@Override
public void run()
{
conn.disconnect();
}
}
);
得到 ctrl + c 的事件,但我在 block 中,无法得到 conn 这个 instance。
我也尝试过将整个 main 弄成另外的 Runnable thread,然后再使用 interrupte() 方法,
但我在 addShutdownHooker block 中一样无法得到我的 thread instance 来处理。
希望大大可以题点一二,谢谢。