public void Query(string serverHost, int serverPort, string name, string qtype) { Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); var ipv4Address = GetIpv4Address(serverHost); IPEndPoint endPoint = new IPEndPoint(ipv4Address, serverPort); socket.Connect(endPoint); var input = DnsUtils.CreateQuestionAsBytes(name, qtype); Console.WriteLine($"Sending: { input.Length }bytes data"); socket.Send(input); Console.WriteLine("Receiving..."); var output = new byte[512]; var c = socket.Receive(output); Console.WriteLine($"Received {c}bytes"); var dnsPacket = new byte[c]; Array.Copy(output, dnsPacket, c); DnsUtils.ReadAndPrintDnsMessage(dnsPacket); socket.Close(); }