im all confused.. how do those a2s things work?

im trying to get A2S_INFO from a cs 1.6 server..
tried this, but it just says: "Lenght: 0, Text: ", which means that the server responds to me but why won't it send any data?
Code:
public send_request() {
new text[32]
setc(text,4, 0xff)
format(text[4],31, "TSource Engine Query")
setc(text[24],1, 0x00)
socket_send(socket, text,31)
set_task(0.5, "receive_info")
return PLUGIN_HANDLED
}
public receive_info() {
new recv[128]
while(socket_change(socket,1)) {
socket_recv(socket, recv,127)
client_print(0,print_chat, "Lenght: %d, Text: %s", strlen(recv), recv)
}
return PLUGIN_HANDLED
}
if i replace the "TSource Engine Query" with "W" (which is the challenge request thingy) i get "Lenght: 6, Text: " (in spite of that recv[4] is "A", but thats it..)
__________________