Godot Version
4+
Question
I have this function in Python:
def create_packet(code, data):
# Adding packet code and data length
packet_code = struct.pack('!I', code)
data_length = struct.pack('!I', len(data))
# Full packet
return b'1337' + packet_code + data_length + data
And i’ve tried to rewrite it to GDScript:
func create_packet(id: int, data: String) -> PackedByteArray:
var packet: PackedByteArray
var data1 = var_to_bytes(data)
packet.append_array("1337".to_ascii_buffer())
packet.append(id)
packet.append(len(data1))
packet.append_array(data1)
return packet
But it not works. My server log and comparison between python client and godot:
[SERVER] Started at localhost:1337
[SERVER] Connection! ('127.0.0.1', 36038)
[SERVER] Created player PythonClient
[->PythonClient] ServerKeepAlive
From PythonClient: 10000
[PythonClient] ClientKeepAlive
From PythonClient: 1337'1
code and data length: 10005 1
[PythonClient] Received packet 10005
[PythonClient] ClientCreateRoom
[->PythonClient] Created room with id RNFB6
From PythonClient: 10000
[PythonClient] ClientKeepAlive
[SERVER] Connection! ('127.0.0.1', 45332)
[SERVER] Created player GodotClient
[->GodotClient] ServerKeepAlive
From GodotClient: 10000
[GodotClient] ClientKeepAlive
From GodotClient: 1337
1
code and data length: 353108992 256
[SERVER] Error with GodotClient | There is not enough data in the packet
[GodotClient] dissconected!
What i doing wrong?