SteamQueryNet เป็น c# wrapper สำหรับการสืบค้นเซิร์ฟเวอร์ไอน้ำโปรโตคอล UDP มันคือ;
ตรวจสอบ SteamQueryNet บน NUGET
SteamQueryNet มาพร้อมกับวัตถุเดียวที่ให้คุณเข้าถึง API ทั้งหมดของโปรโตคอลไอน้ำซึ่งเป็น;
ในการใช้ประโยชน์จาก API ที่ระบุไว้ข้างต้นควรสร้างอินสแตนซ์ของ ServerQuery
string serverIp = "127.0.0.1" ;
int serverPort = 27015 ;
IServerQuery serverQuery = new ServerQuery ( serverIp , serverPort ) ;หรือคุณสามารถใช้ String Resonvers เช่นด้านล่าง:
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
คุณสามารถให้บริการไคลเอนต์ UDP ที่กำหนดเองได้โดยการใช้ IUdpClient ใน Namespace SteamQueryNet.Interfaces
ดูตัวอย่างด้านล่าง:
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 ( ) ;