Vì vậy, tìm thấy đoạn mã nhỏ này sẽ cho phép bạn ping một máy chủ Minecraft trong PHP, nhưng bây giờ tôi muốn làm điều này trong C#.C# ping minecraft
Tôi đã cố gắng làm điều này một mình nhưng vì một lý do chỉ nó không làm việc
UdpClient client = new UdpClient();
IPEndPoint ep;
try
{
ep = new IPEndPoint(IPAddress.Parse("-snip-"), -snip-);
client.Connect(ep);
}
catch { Console.WriteLine("Error"); Console.ReadLine(); return; }
byte[] bytes = new byte[1];
bytes[0] = (byte)0xFE;
client.Send(bytes, bytes.Length);
IPEndPoint rep = new IPEndPoint(IPAddress.Any, 0);
byte[] recv = client.Receive(ref rep);
Console.WriteLine(ASCIIEncoding.ASCII.GetString(recv));
Console.ReadLine();
Máy chủ dường như chỉ hoàn toàn bỏ qua các gói tin. Đây là đoạn mã tôi đã tìm thấy:
$fp = fsockopen($host, $port, $errno, $errstr, $timeout);
if (!$fp) return false;
//Send 0xFE: Server list ping
fwrite($fp, "\xFE");
//Read as much data as we can (max packet size: 241 bytes)
$d = fread($fp, 256);
//Check we've got a 0xFF Disconnect
if ($d[0] != "\xFF") return false;
Có ai vui lòng chỉ ra những sai lầm tôi đang thực hiện? Cảm ơn bạn!
thể bạn muốn loại bỏ các IP coi đây là một nơi hoàn toàn công cộng. –
Đoạn mã đầu tiên là những gì tôi xây dựng trong C#, đoạn thứ hai là đoạn mã trong PHP mà tôi tìm thấy ở đâu đó trên stackoverflow – user2073973