xyz wym? My server and client are separate nodes.
# client_node.gd
class_name ClientNode
extends Node
var udp := PacketPeerUDP.new()
var connected = false
var timer = Timer.new()
func _ready():
var error = udp.connect_to_host("127.0.0.1", 4242)
add_child(timer)
timer.wait_time=1
timer.timeout.connect(_on_timeout)
if error != OK:
print("ClientNode didnt connect")
else:
print("ClientNode connected")
timer.start()
print("Timer started!")
func _process(delta):
if udp.get_available_packet_count() > 0:
var ut = Time.get_unix_time_from_system()
var ms = Time.get_ticks_msec()
var packet_ms = udp.get_packet().get_string_from_utf8().to_int()
var latency = ms - packet_ms
print("tick: %s ms" % ms)
print("latency: %s ms" % latency)
connected = true
func _on_timeout():
var ut = Time.get_unix_time_from_system()
var ms = str(Time.get_ticks_msec()) #str(int(ut * 1000))
udp.put_packet(ms.to_utf8_buffer())
# server_node.gd
class_name ServerNode
extends Node
var server := UDPServer.new()
var peers = []
func _ready():
var error = server.listen(4242)
if error != OK:
print("ServerNode didnt listten")
else:
print("ServerNode listenning")
func _process(delta):
server.poll() # Important!
if server.is_connection_available():
var peer: PacketPeerUDP = server.take_connection()
var packet = peer.get_packet()
#print("Accepted peer: %s:%s" % [peer.get_packet_ip(), peer.get_packet_port()])
#print("Received data: %s" % [packet.get_string_from_utf8()])
# Reply so it knows we received the message.
peer.put_packet(packet)
# Keep a reference so we can keep contacting the remote peer.
peers.append(peer)
for i in range(0, peers.size()):
if peers[i].get_available_packet_count() > 0:
var packet = peers[i].get_packet()
peers[i].put_packet(packet)
pass # Do something with the connected peers.
# main.gd
extends Control
# 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:
pass