using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace MinecraftServerInfo
{
    class Program
    {
        static void Main(string[] args)
        {
            using (Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
                try
                {
                    client.Connect("four.mengcraft.com", 11133);
                    Console.WriteLine("开始连接");
                    if (client.Connected)
                    {
                        Console.WriteLine("发送数据");
                        client.Send(new byte[] { 0x0F, 0x00, 0x04, 0x09, 0x31, 0x32, 0x37, 0x2E, 0x30, 0x2E, 0x30, 0x2E, 0x31, 0x63, 0xDD, 0x01 });
                        client.Send(new byte[] { 0x01, 0x00 });
                        Console.WriteLine("读取头数据");
                        byte[] header = new byte[5];
                        client.Receive(header, header.Length, SocketFlags.None);
                        Console.WriteLine(BitConverter.ToString(header));
                        byte[] buffer = new byte[1024];
                        int recover = client.Receive(buffer, buffer.Length, SocketFlags.None);
                        byte[] data = new byte[recover];
                        Console.WriteLine("数据流长度: " + recover);
                        Array.Copy(buffer, data, recover);
                        Console.WriteLine(BitConverter.ToString(data));
                        Console.WriteLine(Encoding.UTF8.GetString(data));
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            Console.ReadLine();
        }
    }
}
