xyz ok, got it
#main.gd
extends Control
@onready var udp_ping_server: ServerNode = $UdpPingServer
@onready var udp_ping_client: ClientNode = $UdpPingClient
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
if udp_ping_client.udp.get_available_packet_count() > 0:
var ut = Time.get_unix_time_from_system()
var ms = Time.get_ticks_msec()
var packet_ms = udp_ping_client.udp.get_packet().get_string_from_utf8().to_int()
var fps = Engine.get_frames_per_second()
var latency = ms - packet_ms
var engine_time = 1000 / fps
var real_latency = latency - engine_time
#print("tick: %s ms" % ms)
print("latency: %s ms" % latency)
#print("latency: %s ms" % real_latency)
udp_ping_server.server.poll() # Important!
if udp_ping_server.server.is_connection_available():
var peer: PacketPeerUDP = udp_ping_server.server.take_connection()
var packet = peer.get_packet()
peer.put_packet(packet)
# Keep a reference so we can keep contacting the remote peer.
udp_ping_server.peers.append(peer)
for i in range(0, udp_ping_server.peers.size()):
if udp_ping_server.peers[i].get_available_packet_count() > 0:
var packet = udp_ping_server.peers[i].get_packet()
udp_ping_server.peers[i].put_packet(packet)
pass # Do something with the connected peers.
pass
output:
Godot Engine v4.3.dev6.official.89850d553 - https://godotengine.org
Vulkan 1.3.277 - Forward+ - Using Device #0: NVIDIA - NVIDIA GeForce RTX 3090
ClientNode connected
Timer started!
ServerNode listenning
latency: 6 ms
latency: 1 ms
latency: 1 ms
latency: 1 ms
latency: 1 ms
latency: 1 ms
--- Debugging process stopped ---