当用户单击“连接”按钮时,我的 SwingWorkerdoInBackground()
会创建(并注册OP_ACCEPT
)一个新的。ServerSocketChannel
当一个客户isAcceptable()
时,SwingWorker
注册SocketChannel
与OP_READ
。
当用户单击“断开连接”按钮时,SwingWorker
closes()ServerSocketChannel
和selector()
. 但是,客户端仍然是打开的。
问题:如果用户再次单击“连接”,在我看来,上述过程会重复,只是客户端仍处于OP_READ
模式并且没有被ServerSocketChannel
.
有没有办法克服这个问题?重新启动是否ServerSocketChannel
需要客户端也重新启动?