SteamQueryNet
1.0.0
Steamquerynet是用于Steam Server查询UDP协议的C#包装器。这是;
在Nuget上查看Steamquerynet。
SteamqueryNet带有一个单个对象,可让您访问Steam协议的所有API;
为了利用上面列出的API,应创建一个ServerQuery的实例。
string serverIp = "127.0.0.1" ;
int serverPort = 27015 ;
IServerQuery serverQuery = new ServerQuery ( serverIp , serverPort ) ;或者,您可以使用以下类似的字符串解析器:
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 ) ;另外,可以创建ServerQuery对象而不会像以下那样连接:
IServerQuery serverQuery = new ServerQuery ( ) ;
serverQuery . Connect ( host , port ) ;注意: Connect功能过载类似于ServerQuery非空构造函数。
您可以通过在SteamQueryNet.Interfaces名称空间中实现IUdpClient来提供自定义的UDP客户端。
请参阅下面的示例:
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 ) ;一旦创建的函数以下返回所需的信息,
ServerInfo
ServerInfo serverInfo = serverQuery . GetServerInfo ( ) ;球员
List < Player > players = serverQuery . GetPlayers ( ) ;规则
List < Rule > rules = serverQuery . GetRules ( ) ;虽然不鼓励它,但您可以将Connect功能或非空构造函数链接出来,以在一行中获取信息。
ServerInfo serverInfo = new ServerQuery ( )
. Connect ( host , port )
. GetServerInfo ( ) ;