模块 quic
require "quic"
模块函数
| API | 实现 | 说明 |
quic.version | l_version | 返回 QUIC 后端版本字符串 |
quic.server | l_server | 创建 QUIC 服务端监听:quic.server(host, port),返回 server 句柄(含自签名证书) |
quic.connect | l_connect | 连接 QUIC 服务端:quic.connect(host, port, servername?),返回 conn 句柄 |
Server 方法(server:xxx)
| API | 实现 | 说明 |
server:poll | l_server_poll | 接受一个已握手的连接(阻塞等待),返回 conn 句柄或 nil |
Connection 方法(conn:xxx)
| API | 实现 | 说明 |
conn:open_stream | l_conn_open_stream | 在连接上打开一个双向流,返回 stream 句柄 |
conn:poll | l_server_poll | 接受对端发起的双向流(阻塞等待),返回 stream 句柄 |
Stream 方法(stream:xxx)
| API | 实现 | 说明 |
stream:send | l_stream_send | 向流发送数据:stream:send(data),返回已发送字节数 |
stream:recv | l_stream_recv | 从流读取数据:stream:recv(cap?),返回数据串、nil(eof) 或 nil,err |
使用示例(socket.quic 子模块)
local socket = require "socket"
local quic = socket.quic
-- 服务端监听 (本机自签名证书, 演示用)
local srv = quic.server("127.0.0.1", 44555)
-- 客户端连接并开流发送
local conn = quic.connect("127.0.0.1", 44555, "localhost")
local st = conn:open_stream()
st:send("hello over QUIC")
-- 服务端接受连接 → 接受流 → 读取
local sconn = srv:poll()
local sst = sconn:poll()
print(sst:recv(100)) -- "hello over QUIC"
← 返回模块索引