Python:套接字侦听连接时显示消息 'Waiting for player...'
Python: Show message 'Waiting for player...' while socket listens for connection
使用带套接字的 P2P 架构在 Python 中制作一个非常简单的井字游戏。目前我的 GUI 有一个按钮 'Create',它将打开并绘制一个新的游戏板 window、创建一个套接字、绑定、侦听并接受连接。 'Join' 按钮将打开并绘制一个新的游戏板并连接到 'server'。
我试图让它在您创建游戏时显示一条消息说 'Waiting for player...',一个用于停止并返回主菜单的取消按钮,并让它在连接时自行消失已被接受。
我尝试使用 tkMessageBox,但脚本会停止,直到用户清除消息,所以我无法 listen/accept 直到用户按下某些东西。
我还有什么其他方法可以做到这一点?
谢谢!
听起来像是线程问题。
我不熟悉 TK 图形,但我想您需要做的是启动显示 "waiting for player" 消息的 window。 window 然后循环等待发生的事情。
当消息框显示时,您需要在另一个线程上完成 "listening",当有人使用信号量或队列连接时,它会向主消息框发信号。
在您的主 GUI 线程上,您需要进行循环:
- 检查队列或信号量的值。如果那里有您期望的值,请关闭该框。这需要是非阻塞的,这样 GUI 线程仍然可以检查用户的输入。
- 检查用户输入。不过,这可能是使用回调函数完成的。
使用带套接字的 P2P 架构在 Python 中制作一个非常简单的井字游戏。目前我的 GUI 有一个按钮 'Create',它将打开并绘制一个新的游戏板 window、创建一个套接字、绑定、侦听并接受连接。 'Join' 按钮将打开并绘制一个新的游戏板并连接到 'server'。
我试图让它在您创建游戏时显示一条消息说 'Waiting for player...',一个用于停止并返回主菜单的取消按钮,并让它在连接时自行消失已被接受。
我尝试使用 tkMessageBox,但脚本会停止,直到用户清除消息,所以我无法 listen/accept 直到用户按下某些东西。
我还有什么其他方法可以做到这一点?
谢谢!
听起来像是线程问题。
我不熟悉 TK 图形,但我想您需要做的是启动显示 "waiting for player" 消息的 window。 window 然后循环等待发生的事情。
当消息框显示时,您需要在另一个线程上完成 "listening",当有人使用信号量或队列连接时,它会向主消息框发信号。
在您的主 GUI 线程上,您需要进行循环:
- 检查队列或信号量的值。如果那里有您期望的值,请关闭该框。这需要是非阻塞的,这样 GUI 线程仍然可以检查用户的输入。
- 检查用户输入。不过,这可能是使用回调函数完成的。