title: Using java to query counter-strike 1.6 server info
body: <p>guys I am trying to write a simple java program to query counter-strike 1.6 server:</p>
  
  <pre><code>import java.io.IOException;
  import java.net.DatagramPacket;
  import java.net.DatagramSocket;
  import java.net.InetAddress;
  
  public class Test {
  
      private static DatagramSocket ds;
  
      /**
       * @param args
       */
      public static void main(String[] args) {
          try {
              ds = new DatagramSocket(27024);
              byte[] data;
              // TSource Engine Query
              char peer0_0[] = { 
                  0xff, 0xff, 0xff, 0xff, 
                  0x54, 0x53, 0x6f, 0x75,
                  0x72, 0x63, 0x65, 0x20, 
                  0x45, 0x6e, 0x67, 0x69, 
                  0x6e, 0x65, 0x20, 0x51, 
                  0x75, 0x65, 0x72, 0x79, 0x00 
              };
              data = new String(peer0_0).getBytes();
  
              System.out.println("send:" + new String(data));
  
              DatagramPacket dp = new DatagramPacket(data, 0, data.length, InetAddress.getByName("219.133.59.20"), 27021);
              ds.send(dp);
              byte[] rec = new byte[1024];
              DatagramPacket dp2 = new DatagramPacket(rec, 1024);
              ds.receive(dp2);
  
              System.out.println("revice:" + new String(rec));
  
              ds.close();
          } catch (IOException e) {
              e.printStackTrace();
              if(ds != null) ds.close();
          }
      }
  
  }
  </code></pre>
  
  <p>after sending query msg, it did not receive any thing, and the program will not exit.
  I am sure there is a server on 219.133.59.20:27021
  what's wrong with my code ?</p>