Go-Raknet-это библиотека, которая реализует базовую версию протокола Raknet, которая используется для Minecraft (Bedrock Edition). Он реализует ненадежные, надежные и надежные пакеты и отправляет пользовательские пакеты как надежные зарядки.
Go-Raknet пытается абстрагировать прямое взаимодействие с Raknet и предоставляет простые в использовании, идиоматические API GO, используемый для прослушивания подключений или подключения к серверам.
По состоянию на версию Go-Raknet 1.14.0 Go-Raknet требует как минимум 1.22 . Версия 1.12.1 Go-Raknet-последняя версия библиотеки, которая поддерживает GO 1.18 и выше.
Go-Raknet может использоваться как для клиентов, так и для серверов (и прокси, когда они объединяются), очень похоже на стандартные функции net.tcp*.
Базовый сервер 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 ()
}
}Basic Raknet Client:
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 )
}