netcode es un protocolo cliente/servidor seguro construido sobre UDP.
Está pensado para su uso en juegos multijugador en tiempo real, que necesitan un protocolo orientado a la conexión pero sin el bloqueo de cabecera de línea de TCP.
netcode tiene las siguientes características:
netcode es estable y está listo para producción.
Comience generando una clave privada aleatoria de 32 bytes. No comparta su clave privada con nadie .
Especialmente, ¡no incluya su clave privada en el ejecutable de su cliente!
Aquí hay una clave privada de prueba:
static uint8_t private_key [ NETCODE_KEY_BYTES ] = { 0x60 , 0x6a , 0xbe , 0x6e , 0xc9 , 0x19 , 0x10 , 0xea ,
0x9a , 0x65 , 0x62 , 0xf6 , 0x6f , 0x2b , 0x30 , 0xe4 ,
0x43 , 0x71 , 0xd6 , 0x2c , 0xd1 , 0x99 , 0x27 , 0x26 ,
0x6b , 0x3c , 0x60 , 0xf4 , 0xb7 , 0x15 , 0xab , 0xa1 };
Cree un servidor con la clave privada:
char * server_address = "127.0.0.1:40000" ;
struct netcode_server_config_t server_config ;
netcode_default_server_config ( & server_config );
memcpy ( & server_config . private_key , private_key , NETCODE_KEY_BYTES );
struct netcode_server_t * server = netcode_server_create ( server_address , & server_config , time );
if ( ! server )
{
printf ( "error: failed to create servern" );
return 1 ;
}
Luego inicie el servidor con la cantidad de ranuras de cliente que desee:
netcode_server_start ( server , 16 );
Para conectar un cliente, su cliente debe acceder a una API REST en su backend que devuelva un token de conexión .
El uso de un token de conexión protege su servidor para que solo los clientes autorizados con su backend puedan conectarse.
netcode_client_connect ( client , connect_token );
Una vez que el cliente se conecta al servidor, se le asigna un índice de cliente y puede intercambiar paquetes cifrados y firmados con el servidor.
Para obtener más detalles, consulte client.c y server.c
Este repositorio contiene la implementación de netcode en C.
Otras implementaciones de netcode incluyen:
Si desea crear su propia implementación de netcode, lea el estándar netcode 1.02.
Estas personas son increíbles:
¡Gracias por tus contribuciones a netcode!
El autor de esta biblioteca es Glenn Fiedler.
Otras bibliotecas de código abierto del mismo autor incluyen: confiabilidad, serialización y yojimbo.
Si encuentra útil este software, considere patrocinarlo. ¡Gracias!
Licencia BSD de 3 cláusulas.