我一直在寻找一个小时找到这个问题的答案 - 近距离接触,但不是很接近。
问题在于我正在使用this basic approach来实现套接字服务器,但是(当然)它使用accept()
命中并在那里冻结。我想要的是能够让用户单击Tkinter GUI中的复选框控件并让套接字按需监听或关闭。控制while
循环的标志/信号量本身并没有帮助;与此同时,我还必须发送一个“虚拟”连接,让服务器迭代循环,而不是永远坐在accept()
。当然会有效,但只是感觉很笨拙。
经过多次努力,我找到了this article,但解决方案 - 虽然它是一个很好的解决方案 - 似乎仍然依赖于连接处理程序来引发触发退出的事件。这反过来意味着我仍然需要某种虚拟连接来实现它,而不是在accept()
停止服务器套接字时能够中断/销毁/无论服务器套接字是什么。
那么在关闭服务器套接字之前,还有什么方法可以解决需要连接的问题吗?