30 lines
739 B
GDScript3
30 lines
739 B
GDScript3
|
extends NetworkNode
|
||
|
|
||
|
@export var port := 4242
|
||
|
@export var max_pending_connections := 4096
|
||
|
|
||
|
var server := UDPServer.new()
|
||
|
var last_statistics := Time.get_ticks_msec()
|
||
|
var packet_count := 0
|
||
|
|
||
|
func _init():
|
||
|
super._init()
|
||
|
server.set_max_pending_connections(max_pending_connections)
|
||
|
server.listen(port)
|
||
|
|
||
|
func _process(_delta):
|
||
|
server.poll()
|
||
|
|
||
|
while server.is_connection_available():
|
||
|
var peer: PacketPeerUDP = server.take_connection()
|
||
|
|
||
|
while peer.get_available_packet_count() > 0:
|
||
|
var packet = peer.get_packet()
|
||
|
handle_packet(packet, peer)
|
||
|
packet_count += 1
|
||
|
|
||
|
if Time.get_ticks_msec() > last_statistics + 1000:
|
||
|
print("[Server] %d packets per second" % packet_count)
|
||
|
packet_count = 0
|
||
|
last_statistics = Time.get_ticks_msec()
|