Problem com luasocket
Estou tentando ler alguns dados (binários) de um soquete lua, mas o código acima não encerra o loop de repetição. Como posso saber que o final do fluxo chegou?
client = require("socket")
client = socket.connect("www.google.com",80)
client:send("GET / HTTP/1.1\n\n")
repeat
print "read"
line = client:receive(512)
print "read done"
print(#line)
until line==""
print "all done"
Output is
read
read done
512
read
Atualiza
Parece ser o problema que o formulário de recebimento (número) espera o número exato de bytes e aguarde por eles. Mas se eu não sei quantos bytes restam, como fazer isso? (a solicitação http é apenas um exemplo, refiro-me a uma solicitação genérica para ler bytes de um soquete)
lua 5.1.3