2015-05-25 35 views
5

使用带有套接字的P2P架构在Python中制作一个非常简单的tic-tac-toe游戏。目前我的图形用户界面有一个按钮,显示'创建'将打开并绘制一个新的游戏板窗口,创建一个套接字,绑定,监听和接受连接。 “加入”按钮将打开并绘制新的游戏板并连接到该“服务器”。Python:当socket侦听连接时显示消息'Waiting for player ...'

我试图让它在创建游戏时显示消息说'等待玩家...',取消按钮停止并返回到主菜单,并让它自己消失连接已被接受。

我试过使用tkMessageBox,但脚本停止,直到用户清除消息,所以没有办法让我听/接受,直到用户按下的东西。

还有什么其他方式可以实现这一目标?

谢谢!

+0

也许在此期间添加一个框架,并在接受时摧毁它? – Zizouz212

+0

决定打开一个带有标签和按钮的窗口并销毁该窗口。这似乎工作,但现在的问题是,虽然它正在监听整个窗口冻结的连接,所以你不能点击取消按钮....嗯。仍在努力。 – Bapho

回答

1

听起来像是一个线程问题。

我不熟悉TK图形,但我想象你需要做的是启动显示“等待播放器”消息的窗口。那个窗口然后循环等待发生。

当消息框显示时,您需要在另一个线程上完成“监听”,当某个人使用信号量或队列连接时,该线程会将信号发送回主消息框。

在你的主界面线程您需要的循环:

  1. 检查队列或信号量的值。如果您有预期的价值,请关闭此框。这需要非阻塞,以便GUI线程仍然可以检查用户的输入。
  2. 检查用户输入。这可能是使用回调函数完成的。
+0

我担心这会成为答案......有时间研究线程。谢谢! – Bapho

+0

@Bapho不要惊慌,他们不是*所有*都不好!你只需要看时间和信号,你会没事的。 –