Descargar Binarios Base
💡 Para que lo entiendas súper fácil: Descomprime el ".zip" que descargaste y arrastra el archivo po.h y po_c.dll (o .so) al lado del archivo `.cpp` donde vas a programar todo.
Wrapper C++ "RAII"
#include <iostream>
#include <string>
// Este bloque mágico jala el archivo de cabecera que descargaste en el Paso 1
#include "po.h"
// Clase Constructora RAII (Destrucción automática)
class PoClient {
private:
PoClientC* handle;
public:
PoClient(const std::string& remote) {
handle = po_client_new("0", remote.c_str());
if (!handle) throw std::runtime_error("Fallo Criptográfico");
}
~PoClient() {
po_client_free(handle);
}
bool Send(const std::string& msg) {
int res = po_client_send(handle, (const uint8_t*)msg.data(), msg.size());
return res == 0;
}
};
💡 Para que lo entiendas súper fácil: RAII es como tener un asistente robótico a tu lado. En lugar de decirle "abre el túnel y cuando terminemos ciérralo con llave manualmente", tú simplemente usas el túnel, y cuando el asistente ve que te vas de la habitación (termina la función), él cierra la puerta con llave por ti.
Usarlo en tu juego o app de consola
int main() {
try {
// En Unreal Engine, pudieras conectar esto en el GameMode
PoClient client("127.0.0.1:4433");
client.Send("Player 1 se ha movido a X: 34 Y: 89");
std::cout << "Paquete cifrado enviado por UDP." << std::endl;
} catch(const std::exception& e) {
std::cerr << e.what() << std::endl;
}
// ¡La memoria c++ se limpia sola aquí!
return 0;
}