SteamQueryNet ist ein C# Wrapper für Steam Server -Abfragen UDP -Protokoll. Es ist;
Schauen Sie sich SteamQuerynet auf Nuget an.
SteamQueryNet wird mit einem einzelnen Objekt geliefert, mit dem Sie Zugriff auf alle APIs des Steam -Protokolls erhalten.
Um die oben aufgeführten API zu verwenden, sollte eine Instanz von ServerQuery erstellt werden.
string serverIp = "127.0.0.1" ;
int serverPort = 27015 ;
IServerQuery serverQuery = new ServerQuery ( serverIp , serverPort ) ;Oder Sie können String -Resolver wie unten verwenden:
string myHostAndPort = "127.0.0.1:27015" ;
// or
myHostAndPort = "127.0.0.1,27015" ;
// or
myHostAndPort = "localhost:27015" ;
// or
myHostAndPort = "localhost,27015" ;
// or
myHostAndPort = "steam://connect/127.0.0.1:27015" ;
// or
myHostAndPort = "steam://connect/localhost:27015" ;
IServerQuery serverQuery = new ServerQuery ( myHostAndPort ) ; Außerdem ist es möglich, ServerQuery -Objekt zu erstellen, ohne sich wie unten zu verbinden:
IServerQuery serverQuery = new ServerQuery ( ) ;
serverQuery . Connect ( host , port ) ; Hinweis : Connect Überladungen ähneln den nicht leeren Konstruktoren ServerQuery .
Sie können benutzerdefinierte UDP -Clients bereitstellen, indem Sie IUdpClient in SteamQueryNet.Interfaces Namespace implementieren.
Siehe das Beispiel unten:
public class MyAmazingUdpClient : IUdpClient
{
public bool IsConnected { get ; }
public void Close ( )
{
// client implementation
}
public void Connect ( IPEndPoint remoteIpEndpoint )
{
// client implementation
}
public void Dispose ( )
{
// client implementation
}
public Task < UdpReceiveResult > ReceiveAsync ( )
{
// client implementation
}
public Task < int > SendAsync ( byte [ ] datagram , int bytes )
{
// client implementation
}
}
// Usage
IPEndpoint remoteIpEndpoint = new IPEndPoint ( IPAddress . Parse ( remoteServerIp ) , remoteServerPort ) ;
IUdpClient myUdpClient = new MyAmazingUdpClient ( ) ;
IServerQuery serverQuery = new ServerQuery ( myUdpClient , remoteIpEndpoint ) ;Sobald seine erstellten Funktionen unten die gewünschten Informationen zurückgeben, gibt
ServerInfo
ServerInfo serverInfo = serverQuery . GetServerInfo ( ) ;Spieler
List < Player > players = serverQuery . GetPlayers ( ) ;Regeln
List < Rule > rules = serverQuery . GetRules ( ) ; Obwohl es nicht gefördert wird , können Sie die Connect oder nicht leere Konstrukteure anketten, um Informationen in einer einzigen Zeile zu erhalten.
ServerInfo serverInfo = new ServerQuery ( )
. Connect ( host , port )
. GetServerInfo ( ) ;