Go-Raknet es una biblioteca que implementa una versión básica del protocolo Raknet, que se utiliza para Minecraft (edición Bedrock). Implementa paquetes no confiables, confiables y confiables y envía paquetes de usuario como un orden confiable.
Go-Raknet intenta abstraer la interacción directa con Raknet, y proporciona una API Idiomática de GO simple de usar que se utiliza para escuchar conexiones o conectarse a servidores.
A partir de la versión 1.14.0 de Go-Raknet, Go-Raknet requiere al menos GO 1.22 . La versión 1.12.1 de Go-Raknet es la última versión de la biblioteca que admite Go 1.18 y superior.
Go-Raknet se puede usar tanto para clientes como para servidores, (y proxies, cuando se combinan) de una manera muy similar a las funciones estándar net.tcp*.
Servidor básico de raknet:
package main
import (
"github.com/sandertv/go-raknet"
)
func main () {
listener , _ := raknet . Listen ( "0.0.0.0:19132" )
defer listener . Close ()
for {
conn , _ := listener . Accept ()
b := make ([] byte , 1024 * 1024 * 4 )
_ , _ = conn . Read ( b )
_ , _ = conn . Write ([] byte { 1 , 2 , 3 })
conn . Close ()
}
}Cliente básico de Raknet:
package main
import (
"github.com/sandertv/go-raknet"
)
func main () {
conn , _ := raknet . Dial ( "mco.mineplex.com:19132" )
defer conn . Close ()
b := make ([] byte , 1024 * 1024 * 4 )
_ , _ = conn . Write ([] byte { 1 , 2 , 3 })
_ , _ = conn . Read ( b )
}