Хорошо, это был / был некоторый код для прокси. Пример кода исправлен.

аюсь прочитать некоторые (двоичные) данные из сокета lua, но приведенный выше код не завершает цикл повторения. Как я могу знать, что конец потока достиг?

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

Обновить

Кажется, проблема в том, что форма receive (число) ожидает точного числа байтов и ожидает их. Но если я не знаю, сколько осталось байтов, как это сделать? (http-запрос - это только пример, я ссылаюсь на общий запрос на чтение байтов из сокета)

Луа 5.1.3