gdvrpn/uvrpn.gd

37 lines
1.1 KiB
GDScript3
Raw Normal View History

2025-06-26 10:57:37 +02:00
extends Node
@export var url : String = "localhost"
@export var port : int = 3883
2025-06-26 17:43:24 +02:00
var server : UDPServer = null
var socket : StreamPeerTCP = StreamPeerTCP.new()
2025-06-26 10:57:37 +02:00
func _ready() -> void:
2025-06-26 17:43:24 +02:00
if StreamPeerTCP.STATUS_NONE == socket.get_status():
if socket.connect_to_host("localhost",3883) == OK:
send_data(socket,"localhost".to_utf8_buffer())
server = UDPServer.new()
server.listen(3883)
2025-06-26 10:57:37 +02:00
func _process(delta: float) -> void:
server.poll()
if server.is_connection_available():
var peer = 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)
2025-06-26 17:43:24 +02:00
static func send_data(socket : StreamPeerTCP, data: PackedByteArray) -> bool:
if socket.get_status() != StreamPeerTCP.STATUS_CONNECTED:
print("Error: Stream is not currently connected.")
return false
var error: int = socket.put_data(data)
if error != OK:
print("Error writing to stream: ", error)
return false
return true