【发布时间】:2011-02-04 08:28:19
【问题描述】:
我还是从 Lua 开始,想用它写一个(相对)简单的代理。
这就是我想要达到的目的:
- 监听端口。
- 接受连接。
- 由于这是一个代理,我期待 HTTP(Get/Post 等)/HTTPS/FTP/来自我的浏览器的任何请求。
- 检查请求(只是为了提取主机和端口信息?)
- 创建一个新的套接字并连接到请求中指定的主机。
- 使用 POST 数据和所有数据在收到请求时转发确切的请求。
- 接收响应(header/body/anything else..)并响应初始请求。
- 关闭连接?我想 Keep-Alive 不应该受到尊重?
我意识到这不应该是微不足道的,但我在使用 LuaSockets 或 Copas 进行设置时遇到了很多麻烦 --- 我如何接收整个请求?继续接收直到我扫描\r\n\r\n?那我怎么拉帖子数据呢?和身体?还是接受“下载”文件?我读到了“sink”,但诚然不明白其中的大部分含义,所以也许我应该阅读更多内容?
万一这很重要,我正在使用 LuaForWindows 的 Windows 机器上工作,而且对 Lua 还是很陌生。虽然到目前为止很喜欢它,但桌子简直太棒了:)
我发现了 lua-http,但它似乎已合并到 Xavante(我没有找到任何适用于 lua 5.1 和 LuaForWindows 的版本),不确定它是否让我的生活更轻松?
提前感谢我应该查看的任何提示、指针、库/源等 :)
【问题讨论】: