sách gpt4 ai đã đi

sockets - luasocket 的问题

In lại 作者:行者123 更新时间:2023-12-05 01:36:55 27 4
mua khóa gpt4 Nike

我正在尝试从 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
đọc
read done
512
đọc

làm mới

问题似乎是 receive(number) 表单需要确切的字节数并等待它们。但是如果我不知道还剩下多少字节,该怎么做?
(http 请求只是一个例子,我指的是从套接字读取字节的通用请求)

lua 5.1.3

1 Câu trả lời

好的,我找到了这个解决方案

local socket = require("socket")
client = socket.connect("www.google.com",80)
client:send("GET / HTTP/1.1\n\n")
client:settimeout(1)
repeat
print "read"
line,err,rest = client:receive(512)
print "read done"
if line then print(line) end
if rest then print(rest) end
until err

print "all done"
缺点是设置超时,因为请求至少需要 1 秒,任何超过 1 秒的网络延迟都会导致错误。

关于sockets - luasocket 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5416082/

27 4 0
Bài viết được đề xuất: Fortran 执行时间
Bài viết được đề xuất: F# 类型约束和反射
Bài viết được đề xuất: spring-boot - 使用外部配置在 Tomcat 上进行 Spring 启动
Bài viết được đề xuất: methods - 我如何确定 backbone.js 方法接受哪些选项?
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com