HTTP远程下载

  • Post author:
  • Post category:其他


实现HTTP远程下载文件,需要通过socket。 在Lua中,可以通过LuaSocket接口与远程站点建立连接,然后发送下载文件的请求,并接收文件(数据块),最后关闭连接。

示例代码如下:

-- 加载LuaSocket库
require "socket"

-- 定义主机和下载的文件
host = "www.w3.org"
file = "/TR/TRC-htm132.html"

-- 打开TCP连接,连接到该站点80端口(返回连接对象)
c = assert(socket.connect(host, 80))
c:send("GET " .. file .. " HTTP/1.0\r\n\r\n")

-- 按1K字节块接收文件,并将每块写到标准输出:
while true do
	local s, status, partial = c:receive(2^10)
	io.write(s or partial)
	if status == "closed" then break end
end
-- 下载完文件后,关闭连接
c:close()

运行结果:


运行后,成功的将html代码下载到本地。



版权声明:本文为SnailCpp原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。