36 lines
1.1 KiB
GDScript
36 lines
1.1 KiB
GDScript
extends Node
|
|
|
|
@export var url : String = "localhost"
|
|
@export var port : int = 3883
|
|
|
|
var server : UDPServer = null
|
|
var socket : StreamPeerTCP = StreamPeerTCP.new()
|
|
|
|
func _ready() -> void:
|
|
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)
|
|
|
|
|
|
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)
|
|
|
|
|
|
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
|