我有一个客户端和服务器通信如下:
# server
running = 1
while running:
data = self.client.recv(self.size)
self.client.send(str(self.vel))
# client
def runit(self):
self.s.send('test')
data = float(self.s.recv(self.size))
self.master_.after(5,self.runit)
所以两者都在无限循环中,虽然这确实传输数据,但对我的应用程序来说效率很低。我正在制作游戏,我希望服务器在特定实例中向客户端发送数据,我也希望客户端在该实例接收该数据。类似于回调的东西会起作用。不幸的是,我找不到任何适合我需要的东西。
答案 0 :(得分:0)
首先,我没有看到任何东西"低效",在这种情况下,while循环非常常见,而且正如评论所说,loop
将只会阻塞{{ 1}}直到客户端连接。
那么您的问题是如何将数据从服务器发送到客户端?如果建立了连接,假设您正在使用TCP,那么只需在该套接字上调用recv
方法。也许您想设置套接字send()
,请参阅How to change tcp keepalive timer using python script?。