如何使用twisted查询在服务器上进行了多少次登录
这是服务器端的一个简短示例:
#Server side
def init():
reactor.listenTCP(7921, XCanServerFactory())
reactor.run()
这是客户端的一个简短示例:
#Client side
class MyApp(wx.App):
def OnInit(self):
messenger.registerConnectionWindowLauncher(self.chooseConnection)
messenger.registerListWindowLauncher(self.chooseWindow)
messenger.guiLaunchConnectionWindow()
return True
def chooseConnection(self, event = None):
self.connectFrame = ConnectWindow(None, -1, "Connect to Server", shutdown)
self.connectFrame.Fit()
self.connectFrame.Show(1)
self.connectFrame.connectButton.Bind(wx.EVT_BUTTON,self.connect)
self.connectFrame.connectButton.Bind(wx.EVT_MENU,self.connect)
return self.connectFrame
def chooseWindow(self, event = None):
self.chooseWinFrame = ListWindow(None, -1, "Example Window",
messenger, shutdown)
self.chooseWinFrame.SetSize((240, 180))
self.chooseWinFrame.Show(1)
return self.chooseWinFrame
def init():
app = MyApp(0)
reactor.registerWxApp(app)
reactor.run()
如何在服务器和客户端之间交换已登录用户的数量,以便每个客户端都可以看到当前登录的用户数
我对客户端和服务器之间的交换感兴趣,以便在输出窗口中通知每个用户已登录的用户数。当然,我需要一个登录窗口,您可以在其中登录,还需要一个输出窗口,其中显示某个用户和某个用户登录的信息。当然,完整的源代码更加复杂。如果你感兴趣,你可以看它here。我想把canasta游戏编程为网络程序。如果两个用户登录到服务器,那么两个玩家应该一起玩,如果三个用户登录,那么三个玩家,依此类推。但是我如何与twisted交换这些信息,因为这些程序运行在不同的计算机上,并且只与connectTCP
连接
不幸的是,关于我应该包括以下功能的建议对我帮助不大:
def cmd_get_player_count(self, tag, args):
# From where should this function be called?
print("cmd_get_player_count")
self.sendUntagged("playercount", len(GameRegistry.registry.getUserList()))
我在服务器模块中的何处调用此函数?在客户端模块中,我应该在哪里包含它,以便查询玩家的数量?请记住,我自己并没有对这些功能进行编程,而是从另一个开源游戏中接管了它们,因此我不熟悉这种服务器-客户端技术的工作原理。此外,请回答我这些问题,不要回答我从未问过的问题!这离题了,没有多大帮助
从链接的源repo中,我看到您已经启动了一个网络协议:
看起来您可以通过这种方式在客户端和服务器之间交换一些信息。如果是这种情况,答案是添加一条新的协议消息,用于交换您要传输的新信息
例如,您可以添加如下命令:
旁白:
from Game import *
),因为它会使查找符号(对于人和工具)变得困难李>相关问题 更多 >
编程相关推荐