I do not want to use “high level networking” (which only facilitates you if you have the server and client godot, does not work for me, which is an external server).
Also, I do not want to use enet of godot (which does not look very much like enet, it has no way to send messages through channels like enet does.
So I thank you for the answer, but you’re too far from what you’ve been asked. I am trying to use a packetPeerUDP, but I do not know how to do it.
PerduGames | 2017-11-17 17:24
I am not sure what do you mean by channel? do you mean internet ports?
I ended up not doing with the class “PacketPeerUDP” and I decided to translate a pure enet module to the godot. You can find it here: https://github.com/PerduGames/gdnet3
PerduGames | 2017-11-28 22:28
Hi! I need YouTube help. This module working in Android?
And for compile the module i put the folder gdnet3 into modules? because this folder contain others folder test a pnet … Thanks foto answer
I leave here the code for a client and server using the “PacketPeerUDP” class:
client.gd
var IP_SERVER = "127.0.0.1" #"34.202.96.244"
var PORT_SERVER = 1507
var PORT_CLIENT = 1509
var socketUDP = PacketPeerUDP.new()
func _ready():
start_client()
func _process(delta):
if cron_send > 0:
cron_send -= delta
if cron_send <= 0:
if socketUDP.is_listening():
socketUDP.set_dest_address(IP_SERVER, PORT_SERVER)
var stg = "hi server!"
var pac = stg.to_ascii()
socketUDP.put_packet(pac)
print("send!")
cron_send = 3
if socketUDP.get_available_packet_count() > 0:
var array_bytes = socketUDP.get_packet()
printt("msg server: " + array_bytes.get_string_from_ascii())
func start_client():
if (socketUDP.listen(PORT_CLIENT, IP_SERVER) != OK):
printt("Error listening on port: " + str(PORT_CLIENT) + " in server: " + IP_SERVER)
else:
printt("Listening on port: " + str(PORT_CLIENT) + " in server: " + IP_SERVER)
func _exit_tree():
socketUDP.close()
server.gd
var IP_CLIENT
var PORT_CLIENT
var PORT_SERVER = 1507
var IP_SERVER = "127.0.0.1"
var socketUDP = PacketPeerUDP.new()
func _ready():
start_server()
func _process(delta):
if socketUDP.get_available_packet_count() > 0:
var array_bytes = socketUDP.get_packet()
var IP_CLIENT = get_packet_ip()
var PORT_CLIENT = get_packet_port()
printt("msg server: " + array_bytes.get_string_from_ascii())
socketUDP.set_dest_address(IP_CLIENT, PORT_CLIENT)
var stg = "hi server!"
var pac = stg.to_ascii()
socketUDP.put_packet(pac)
func start_server():
if (socketUDP.listen(PORT_SERVER) != OK):
printt("Error listening on port: " + str(PORT_SERVER))
else:
printt("Listening on port: " + str(PORT_SERVER))
func _exit_tree():
socketUDP.close()
I tried the code and it works perfectly for windows 10, but on android, there is no flow of data, any Idea why? I ruled out firewall by testing UDP using an app from playstore.