Game Maker网络,发送太多数据

时间:2015-12-24 17:58:27

标签: networking game-maker

我正在与Game Maker进行游戏并且在网络方面遇到一些麻烦:(我的服务器在Twisted Framework的帮助下以python编码。

Anywho,作为一个例子,当我点击我的Game Maker游戏中的一个按钮将我的登录信息发送到服务器时,它似乎只需单击一下鼠标即可发送多次,这是不对的。这是我的发送脚本代码......

var t_buffer = buffer_create(256, buffer_grow, 1)
buffer_seek( t_buffer, buffer_seek_start, 0)
buffer_write( t_buffer , buffer_string, chr(argument0) + string(argument1) )
network_send_packet(obj_Server.client, t_buffer, buffer_tell(t_buffer))
buffer_delete(t_buffer)

我的服务器端,现在,我只打印出发送的数据,并打印出五行相同的内容。这是我的python代码......

# Sends received data to the protocol handler
def dataReceived(self, data):
    self.protocolHandler(data)

# Parses data sent from the client
def protocolHandler(self, data):
    # Split our data
    #values = data.split("\x01")
    #eventTokens = values.pop(0)
    #eventToken1, eventToken2 = eventTokens
    print "Data Received:: " + str(data) + ": First Character: " + data[0]

为了便于解释,令牌只是帮助我确定我在游戏中需要做什么,例如,如果我收到\ x01 \ x03我知道它是一个登录数据包,并且应该附加登录数据。如果我得到\ x02 \ x03我知道其他东西就像我的客户玩家已经死了。

我应该如何处理数据发送,以便它不发送大量数据包?

1 个答案:

答案 0 :(得分:0)

GM不应该多次发送数据。在代码中使用{{1}}查看实际执行的次数。

如果它正在多次执行,那么你需要仔细查看你是如何调用该代码的。

如果它只执行一次,那么必须要考虑到你如何处理服务器端,但我不熟悉Twisted Framework。

相关问题