UDP服务器包延迟(python)

时间:2018-04-12 18:58:26

标签: python server udp

我已经创建了一个UDP客户端 - 服务器系统。它背后的想法是多个客户端连接到服务器并发送它的数据包。服务器的目标是将这些数据包发送给所有其他客户端。它有点工作,在客户端有一个延迟,它后来收到数据包,然后它是暂停到达。这几乎就像数据包排队并稍后处理一样。

对于这种延迟,有什么可以做的吗?

我为一款需要多人游戏的游戏做了这个。客户端他对服务器和服务器的世界定位将其发送给客户端。如果客户收到包裹,则将移动应用于正确的用户。这就是延迟发生的地方!

我初始化服务器的方式:

self.server = socket.socket(socket.AF_INET, socket.
self.server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.server.bind((self.bind_ip, self.bind_port))

听众     request,addr = self.server.recvfrom(1024)

if 'position' in decoded_request.
    self.latest_pos['init_connection']["{}:{}".format(addr[0],addr[1])] = 
    decoded_request['position']['coordinates']
    self.broadcast_message(request)

Broadcast_message方法:

def broadcast_message(self, packet):
    for client in self.user_addresses.values():
        self.server.sendto(packet, (client[0], client[1]))

客户:

data, addr = self.server.recvfrom(1024)
data = json.loads(data.decode)

** here is the code that handles the packet ** a.k.a. apply the movement to the player

如果它收到一个json与例如然后,worldposition将移动应用于等于ip的用户对象。

0 个答案:

没有答案